@davidwoods/skylight-mcp 1.8.1 → 1.8.4

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.
package/README.md CHANGED
@@ -41,7 +41,7 @@ exposes every tool. The *hosted* server (a Cloudflare Worker) is optional. You
41
41
  only need it if Claude Duet or Claude on another device has to reach Skylight
42
42
  when this computer is off. It means cloning the repo, a free Cloudflare
43
43
  account, `npx wrangler login`, `npm run worker:setup`, and a second sign-in,
44
- and it exposes only read and write tools plus `delete_message`. Do the local
44
+ and it exposes read and write tools plus a short list of deletes (chores, lists, list items, rewards, recipes, meal sittings, messages; not calendar events). Do the local
45
45
  setup first; see
46
46
  [Hosted server (Claude Duet, Claude on other devices)](#hosted-server-claude-duet-claude-on-other-devices)
47
47
  if you need it later.
@@ -273,31 +273,29 @@ encrypted in the OAuth grant, not in a database you manage.
273
273
 
274
274
  ### Which tools the hosted server exposes, and why
275
275
 
276
- By default the hosted server registers **read and create/update tools only**:
277
- no `delete_*` tools and no photo uploads. The local (stdio) server registers
278
- everything. This is a deliberate choice, not a limitation of the Worker:
276
+ The hosted server registers all **read and create/update tools**, plus these
277
+ deletes: `delete_chore`, `delete_list`, `delete_list_item`, `delete_reward`,
278
+ `delete_recipe`, `delete_meal_sitting` and `delete_message`. It does **not**
279
+ register `delete_calendar_event` or photo uploads. The local (stdio) server
280
+ registers everything. This is a deliberate choice, not a limitation of the Worker:
279
281
 
280
282
  - The hosted server is what Claude Duet drives proactively, sometimes
281
- unattended. A misread instruction that *creates* a wrong chore is a
282
- nuisance; one that *deletes* a calendar event is data loss with no undo
283
- from Claude. Leaving deletes off the hosted path caps the worst outcome at
284
- "something extra to clean up".
283
+ unattended. Every allowlisted delete previews and deletes nothing unless
284
+ `confirm: true`, so the model has to show the exact target and get a yes
285
+ first. Calendar events stay local-only because a wrong delete there is the
286
+ costliest to miss.
285
287
  - Photo tools are uploads the Worker has no reason to carry.
286
288
 
287
- If you want full parity on the hosted server, change one line in
288
- `src/worker/mcp.ts` and redeploy:
289
-
290
- ```ts
291
- export const HOSTED_EFFECTS: readonly ToolEffect[] = ["read", "write", "destructive"];
292
- ```
293
-
294
- and set `photos: true` in the same file if you also want photo uploads.
295
- Every tool's classification lives in `src/tools/registry.ts`, so you can also
296
- carve out a profile of your own (read-only, for example, is `["read"]`).
289
+ The allowlist is one list, `HOSTED_DESTRUCTIVE_ALLOWLIST` in
290
+ `src/worker/mcp.ts`. Add or remove a tool name there and redeploy. For full
291
+ parity set `HOSTED_EFFECTS` to `["read", "write", "destructive"]` and
292
+ `photos: true` in the same file. Every tool's classification lives in
293
+ `src/tools/registry.ts`, so you can also carve out a profile of your own
294
+ (read-only, for example, is `["read"]`).
297
295
 
298
296
  If you run both servers in the Claude desktop app, Claude sees two sets of
299
297
  mostly duplicate tools and may use either for writes. Disable the local one
300
- in Settings → Connectors when you do not need the delete or photo tools, or
298
+ in Settings → Connectors when you do not need calendar deletes or photo tools, or
301
299
  say "use the local Skylight server" when you do.
302
300
 
303
301
  ### Deploy (once)
@@ -369,25 +367,26 @@ last captured are recorded in the repository's build log.
369
367
 
370
368
  | Area | What works | Hosted server (Claude Duet) | Status |
371
369
  |------|------------|------------------------------|--------|
372
- | Calendar | Read events and source calendars; create (with profiles), update, delete events | Everything except delete | Read, create and delete live-tested; update inherited |
370
+ | Calendar | Read events and source calendars; create (with profiles), update, delete events | Everything except delete (local only) | Read, create and delete live-tested; update inherited |
373
371
  | Planning | Week overview, conflicts, free slots, bulk meal plan | All four | Week overview live-tested; the rest mocked only |
374
- | Meals (Plus) | Read categories and meals; create, rename, move, delete one-off meals | Everything except delete | Live-tested |
375
- | Recipes (Plus) | Read, create, update, delete recipes; push ingredients to the grocery list | Everything except delete | Inherited |
372
+ | Meals (Plus) | Read categories and meals; create, rename, move, delete one-off meals | All, delete included | Live-tested |
373
+ | Recipes (Plus) | Read, create, update, delete recipes; push ingredients to the grocery list | All, delete included | Inherited |
376
374
  | Messages | Read; post to everyone or to named profiles (silent by default); edit text and sender (everyone-messages only); delete | All four, delete included | Live-tested |
377
- | Chores | Read, create, update, delete | Everything except delete | Read live-tested; writes inherited |
378
- | Task box | Add a task | Yes | Inherited |
379
- | Lists | Read lists and items; create, update, delete lists and items | Everything except delete | Inherited |
375
+ | Chores and routines | Read (routines marked, Up for Grabs included); create, update, delete chores; mark one occurrence of a routine or recurring chore done or not done | All, delete included | Read live-tested; completion captured live, tool not yet run live; the rest inherited |
376
+ | Task box | List items; add a task | Yes | List live-tested; add inherited |
377
+ | Lists | Read lists and items; create, update, delete lists and items | All, delete included | Inherited |
380
378
  | Family and devices | Profiles with IDs, avatars, colours, household info, devices | Yes | Profiles live-tested; the rest inherited |
381
- | Rewards (Plus) | Read points and rewards; create, update, redeem, unredeem, delete | Everything except delete | Inherited |
379
+ | Rewards (Plus) | Read points (by profile) and rewards; create, update, redeem, unredeem, delete | All, delete included | Inherited; points read live-tested |
382
380
  | Photos (Plus) | List albums | No | Inherited |
383
381
 
384
382
  ### Not supported
385
383
 
386
384
  Nothing here is hidden behind a flag. It is either unavailable from Skylight or not yet captured.
387
385
 
388
- - **Messages**: deleting one (Skylight offers no way), sending to specific profiles or devices, scheduling, repeating, voice notes, and read-aloud (the option exists on `send_message` but was not tested live).
386
+ - **Messages**: sending to specific devices, scheduling, repeating, voice notes, and read-aloud (the option exists on `send_message` but was not tested live). Deleting works but the app has no delete button.
389
387
  - **Meals**: editing or deleting a repeating meal (it is refused, because the behaviour of changing one occurrence of a series was not captured), saving a meal to the recipe box from the edit form, and Skylight's own "Plan Meals" feature.
390
- - **Task box**: listing, editing or completing tasks. It is create-only.
388
+ - **Task box**: editing or completing tasks, and saving a routine template to it.
389
+ - **Chores**: completing a one-off (non-recurring) chore, Skip, daily or monthly routine schedules (only the weekly format has been captured), and editing a recurring chore's date, time, assignee or stars. Un-completing a routine cannot reduce its `longest_streak`. Whether "this and future" from a later day keeps the earlier days has not been checked (the capture started from the first day).
391
390
  - **Profiles**: creating or editing them. Read-only.
392
391
  - **Settings, account, notifications, sleep schedule, device navigation**: none of these are exposed.
393
392
  - **Photos**: uploads and anything beyond listing albums.
@@ -436,7 +435,7 @@ Messages are the notes shown on the frame (Skylight's web app calls them "nudges
436
435
  | Tool | Effect | Description |
437
436
  |------|--------|-------------|
438
437
  | `get_calendar_events` | read | Events for a date range |
439
- | `get_source_calendars` | read | Connected calendar sources (Google, iCloud, etc.) |
438
+ | `get_source_calendars` | read | Connected calendar sources (Google, iCloud, etc.), with each one's role and whether it is editable. Private feed addresses are hidden: only the host is shown |
440
439
  | `create_calendar_event` | write | Add an event. `profiles` assigns it to named family members. Local times are sent with the frame's UTC offset. |
441
440
  | `update_calendar_event` | write | Change an event, including who it is assigned to (`profiles`) |
442
441
  | `delete_calendar_event` | destructive | Delete an event. Local server only. |
@@ -447,8 +446,10 @@ Messages are the notes shown on the frame (Skylight's web app calls them "nudges
447
446
  |------|--------|-------------|
448
447
  | `get_chores` | read | Chores with optional filters (date, assignee, status) |
449
448
  | `create_chore` | write | Create a chore, optionally recurring |
450
- | `update_chore` | write | Rename, reschedule, reassign, complete or reopen a chore |
451
- | `delete_chore` | destructive | Delete a chore. Local server only. |
449
+ | `update_chore` | write | Rename, reschedule, reassign a one-off chore. For recurring chores and routines only a rename and a weekly schedule (`days` + `timeOfDay`) are supported; a schedule change needs `acknowledgeReset: true` because it can reset streak history, and Skylight re-keys the chore (the reply gives the new id). Completion goes through `complete_chore`. |
450
+ | `create_routine` | write | Create a weekly routine (morning, afternoon or evening) for one or more profiles, via `create_multiple`. Optional habit tracking and stars. Weekly schedules only. |
451
+ | `complete_chore` | write | Mark one occurrence of a routine or recurring chore done, or undo it. Previews unless `confirm: true`; awards real stars and streaks on the family display. Recurring chores only. |
452
+ | `delete_chore` | destructive | Delete a chore. Previews unless `confirm: true`. Recurring chores and routines need `scope`: `future` (this day and later) or `all` (whole series), sent as `apply_to`. Reads back to confirm. Available on the hosted server too. |
452
453
 
453
454
  ### Task Tools
454
455
 
@@ -529,7 +530,8 @@ All calls go to `https://app.ourskylight.com/api` (pinned in code). `{f}` is the
529
530
  | Meals | `GET /meals/categories`, `GET/POST /meals/sittings`, `PATCH/DELETE /meals/sittings/{id}/instances/{date}` (all live) |
530
531
  | Recipes | `GET/POST /meals/recipes`, `GET/PATCH/DELETE /meals/recipes/{id}`, `POST /meals/recipes/{id}/add_to_grocery_list` |
531
532
  | Profiles and family | `GET /frames/{f}/categories` (live), `GET /frames/{f}`, `GET /frames/{f}/devices`, `GET /api/avatars`, `GET /api/colors` |
532
- | Chores and tasks | `GET/POST /frames/{f}/chores`, `PUT/DELETE /chores/{id}`, `POST /frames/{f}/task_box/items` |
533
+ | Chores and routines | `GET /frames/{f}/chores` (live; `include_up_for_grabs`), `POST /chores`, `PUT/DELETE /chores/{id}` (one-off), `PUT /chores/{occurrence id}` (flat `{summary}` or `{recurrence_set}`; re-keys the chore), `DELETE /chores/{occurrence id}?apply_to=future\|all`, `PUT /chores/{series id}/completions` (body `status` `complete`/`pending`, `instance_date`, `instance_time`), `POST /chores/create_multiple`. All routine calls captured from the web app; the tools are not yet run live |
534
+ | Task box | `GET /frames/{f}/task_box/items` (live), `POST /frames/{f}/task_box/items` |
533
535
  | Lists | `GET/POST /lists`, `GET/PUT/DELETE /lists/{id}`, `POST /lists/{id}/list_items`, `PUT/DELETE /lists/{id}/list_items/{itemId}` |
534
536
  | Rewards | `GET/POST /rewards`, `PATCH/DELETE /rewards/{id}`, `POST /rewards/{id}/redeem`, `POST /rewards/{id}/unredeem`, `GET /reward_points` |
535
537
  | Photos | `GET /frames/{f}/albums` (local only) |
@@ -55,4 +55,67 @@ export declare function updateChore(choreId: string, options: UpdateChoreOptions
55
55
  * Delete a chore
56
56
  */
57
57
  export declare function deleteChore(choreId: string): Promise<void>;
58
+ export interface ChoreOccurrence {
59
+ seriesId: string;
60
+ instanceDate: string;
61
+ instanceTime: string;
62
+ }
63
+ /** Split an occurrence id from get_chores into the pieces the completions endpoint wants. Null for any other id (one-off chores, junk). */
64
+ export declare function parseOccurrenceId(id: string): ChoreOccurrence | null;
65
+ export interface CompletionResult {
66
+ summary: string | null;
67
+ status: string | null;
68
+ /** Points balance after the change, when Skylight reports it. */
69
+ pointsBalance: number | null;
70
+ pointsLifetime: number | null;
71
+ currentStreak: number | null;
72
+ longestStreak: number | null;
73
+ }
74
+ /**
75
+ * Mark one occurrence of a recurring chore (routine) complete or pending.
76
+ * Verified live: the series id goes in the path, the occurrence date/time in the body.
77
+ */
78
+ export declare function completeChoreOccurrence(occurrence: ChoreOccurrence, complete: boolean, completedOn: string): Promise<CompletionResult>;
79
+ export type DeleteScope = "future" | "all";
80
+ /**
81
+ * Delete a recurring chore or routine. The app sends `DELETE /chores/{occurrence id}?apply_to=future|all`
82
+ * (captured live; 200 with an empty body). "future" is "this and future tasks", "all" is the whole series.
83
+ */
84
+ export declare function deleteChoreOccurrence(occurrenceId: string, scope: DeleteScope): Promise<void>;
85
+ export type TimeOfDay = "morning" | "afternoon" | "evening";
86
+ export type WeekDay = "MO" | "TU" | "WE" | "TH" | "FR" | "SA" | "SU";
87
+ export declare const WEEK_DAYS: readonly WeekDay[];
88
+ /** The web app's "In the" choices: Morning 6, Afternoon 14, Evening 20 (all captured live). */
89
+ export declare const TIME_OF_DAY_HOUR: Record<TimeOfDay, number>;
90
+ /** A weekly routine rule exactly as the web app writes it. Only the weekly shape has been captured. */
91
+ export declare function buildWeeklyRule(days: readonly WeekDay[], timeOfDay: TimeOfDay): string;
92
+ export interface ChoreEditResult {
93
+ /** Skylight re-keys a chore on every edit: this is the id to use from now on. */
94
+ newId: string | null;
95
+ summary: string | null;
96
+ recurrenceSet: string[] | null;
97
+ }
98
+ /**
99
+ * Edit a recurring chore or routine. The web app sends a flat body (not JSON:API) to
100
+ * `PUT /chores/{occurrence id}`; both a rename (`{summary}`) and a schedule change
101
+ * (`{recurrence_set}`) were captured live, and each returned a new series id.
102
+ */
103
+ export declare function updateChoreOccurrence(occurrenceId: string, changes: {
104
+ summary?: string;
105
+ recurrenceSet?: string[];
106
+ }): Promise<ChoreEditResult>;
107
+ export interface CreateRoutineOptions {
108
+ summary: string;
109
+ start: string;
110
+ categoryIds: string[];
111
+ recurrenceSet: string[];
112
+ trackHabit: boolean;
113
+ rewardPoints: number | null;
114
+ emojiIcon: string | null;
115
+ }
116
+ /** Create a routine for one or more profiles: `POST /chores/create_multiple` (captured live), one chore per profile. */
117
+ export declare function createRoutine(options: CreateRoutineOptions): Promise<Array<{
118
+ id: string;
119
+ summary: string;
120
+ }>>;
58
121
  //# sourceMappingURL=chores.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chores.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/chores.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,aAAa,EACb,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsBxF;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqCrF;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAqCxB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE"}
1
+ {"version":3,"file":"chores.d.ts","sourceRoot":"","sources":["../../../src/api/endpoints/chores.ts"],"names":[],"mappings":"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"}
@@ -112,4 +112,94 @@ export async function deleteChore(choreId) {
112
112
  method: "DELETE",
113
113
  });
114
114
  }
115
+ /** A recurring-chore occurrence id: `{series id}-{YYYY-MM-DD}-{HHMM}`. */
116
+ const OCCURRENCE_ID = /^(\d+)-(\d{4}-\d{2}-\d{2})-(\d{2})(\d{2})$/;
117
+ /** Split an occurrence id from get_chores into the pieces the completions endpoint wants. Null for any other id (one-off chores, junk). */
118
+ export function parseOccurrenceId(id) {
119
+ const m = OCCURRENCE_ID.exec(id);
120
+ if (!m)
121
+ return null;
122
+ return { seriesId: m[1], instanceDate: m[2], instanceTime: `${m[3]}:${m[4]}` };
123
+ }
124
+ /**
125
+ * Mark one occurrence of a recurring chore (routine) complete or pending.
126
+ * Verified live: the series id goes in the path, the occurrence date/time in the body.
127
+ */
128
+ export async function completeChoreOccurrence(occurrence, complete, completedOn) {
129
+ const client = getClient();
130
+ const body = complete
131
+ ? { status: "complete", instance_date: occurrence.instanceDate, instance_time: occurrence.instanceTime, completed_on: completedOn }
132
+ : { status: "pending", instance_date: occurrence.instanceDate, instance_time: occurrence.instanceTime };
133
+ const res = await client.request(`/api/frames/{frameId}/chores/${occurrence.seriesId}/completions`, { method: "PUT", body });
134
+ const tracker = res.included?.find((i) => i.type === "habit_tracker");
135
+ return {
136
+ summary: res.data?.attributes?.summary ?? null,
137
+ status: res.data?.attributes?.status ?? null,
138
+ pointsBalance: res.meta?.reward_points?.current_point_balance ?? null,
139
+ pointsLifetime: res.meta?.reward_points?.lifetime_points_earned ?? null,
140
+ currentStreak: tracker?.attributes?.current_streak ?? null,
141
+ longestStreak: tracker?.attributes?.longest_streak ?? null,
142
+ };
143
+ }
144
+ /**
145
+ * Delete a recurring chore or routine. The app sends `DELETE /chores/{occurrence id}?apply_to=future|all`
146
+ * (captured live; 200 with an empty body). "future" is "this and future tasks", "all" is the whole series.
147
+ */
148
+ export async function deleteChoreOccurrence(occurrenceId, scope) {
149
+ const client = getClient();
150
+ await client.request(`/api/frames/{frameId}/chores/${occurrenceId}`, {
151
+ method: "DELETE",
152
+ params: { apply_to: scope },
153
+ });
154
+ }
155
+ export const WEEK_DAYS = ["MO", "TU", "WE", "TH", "FR", "SA", "SU"];
156
+ /** The web app's "In the" choices: Morning 6, Afternoon 14, Evening 20 (all captured live). */
157
+ export const TIME_OF_DAY_HOUR = { morning: 6, afternoon: 14, evening: 20 };
158
+ /** A weekly routine rule exactly as the web app writes it. Only the weekly shape has been captured. */
159
+ export function buildWeeklyRule(days, timeOfDay) {
160
+ const ordered = WEEK_DAYS.filter((d) => days.includes(d));
161
+ return `RRULE:FREQ=WEEKLY;INTERVAL=1;WKST=SU;BYHOUR=${TIME_OF_DAY_HOUR[timeOfDay]};BYDAY=${ordered.join(",")}`;
162
+ }
163
+ /**
164
+ * Edit a recurring chore or routine. The web app sends a flat body (not JSON:API) to
165
+ * `PUT /chores/{occurrence id}`; both a rename (`{summary}`) and a schedule change
166
+ * (`{recurrence_set}`) were captured live, and each returned a new series id.
167
+ */
168
+ export async function updateChoreOccurrence(occurrenceId, changes) {
169
+ const client = getClient();
170
+ const body = {};
171
+ if (changes.summary !== undefined)
172
+ body.summary = changes.summary;
173
+ if (changes.recurrenceSet !== undefined)
174
+ body.recurrence_set = changes.recurrenceSet;
175
+ const res = await client.request(`/api/frames/{frameId}/chores/${occurrenceId}`, { method: "PUT", body });
176
+ return {
177
+ newId: res.data?.id ?? null,
178
+ summary: res.data?.attributes?.summary ?? null,
179
+ recurrenceSet: res.data?.attributes?.recurrence_set ?? null,
180
+ };
181
+ }
182
+ /** Create a routine for one or more profiles: `POST /chores/create_multiple` (captured live), one chore per profile. */
183
+ export async function createRoutine(options) {
184
+ const client = getClient();
185
+ const res = await client.request("/api/frames/{frameId}/chores/create_multiple", {
186
+ method: "POST",
187
+ body: {
188
+ summary: options.summary,
189
+ start: options.start,
190
+ category_ids: options.categoryIds,
191
+ routine: true,
192
+ track_habit: options.trackHabit,
193
+ up_for_grabs: false,
194
+ emoji_icon: options.emojiIcon,
195
+ reward_points: options.rewardPoints,
196
+ recurrence_set: options.recurrenceSet,
197
+ recurring_until: null,
198
+ renewal_interval: null,
199
+ renewal_unit: null,
200
+ start_time: null,
201
+ },
202
+ });
203
+ return (res.data ?? []).map((c) => ({ id: c.id, summary: c.attributes?.summary ?? options.summary }));
204
+ }
115
205
  //# sourceMappingURL=chores.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chores.js","sourceRoot":"","sources":["../../../src/api/endpoints/chores.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chores.js","sourceRoot":"","sources":["../../../src/api/endpoints/chores.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAa7D,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,EAAE,CAQV;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CASvG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyT7D"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAa7D,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,EAAE,CAQV;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CASvG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0T7D"}
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { getCalendarEvents, getSourceCalendars, createCalendarEvent, updateCalendarEvent, deleteCalendarEvent, withFrameOffset, } from "../api/endpoints/calendar.js";
3
3
  import { getTodayDate, parseDate, formatDateForDisplay } from "../utils/dates.js";
4
4
  import { formatErrorForMcp } from "../utils/errors.js";
5
+ import { redactFeedUrl } from "../utils/redact.js";
5
6
  import { getConfig } from "../config.js";
6
7
  import { getCategories, resolveProfileIds } from "../api/endpoints/categories.js";
7
8
  // Fields the event listing carries that identify people or accounts and tell a model nothing it
@@ -145,7 +146,8 @@ Returns a list of connected calendar sources (Google, iCloud, etc.).`, {}, async
145
146
  const parts = [`- Calendar (ID: ${cal.id})`];
146
147
  for (const [key, value] of Object.entries(attrs)) {
147
148
  if (value !== null && value !== undefined) {
148
- parts.push(` ${key}: ${value}`);
149
+ // Feed URLs are bearer-like secrets; show only the host.
150
+ parts.push(` ${key}: ${typeof value === "string" ? redactFeedUrl(value) : value}`);
149
151
  }
150
152
  }
151
153
  return parts.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/tools/calendar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chores.d.ts","sourceRoot":"","sources":["../../src/tools/chores.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwV1D"}
1
+ {"version":3,"file":"chores.d.ts","sourceRoot":"","sources":["../../src/tools/chores.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgiB1D"}