@batalabs/virlow-mcp-core 3.101.0 → 3.102.0

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/dist/api.d.ts CHANGED
@@ -83,6 +83,16 @@ export interface ApiFolder {
83
83
  /** Encrypted v2 blob of the folder's property and view definitions. */
84
84
  encryptedSchema: string | null;
85
85
  }
86
+ /** A reminder on a note, sent to its owner by email or Slack. */
87
+ export interface ApiReminder {
88
+ id: string;
89
+ noteId: string;
90
+ remindAt: string;
91
+ label: string | null;
92
+ channels: string[];
93
+ /** pending, sent, failed or cancelled. */
94
+ status: string;
95
+ }
86
96
  /** One attachment's metadata. The filename is only ever in encryptedTitle. */
87
97
  export interface ApiFile {
88
98
  id: string;
@@ -226,5 +236,25 @@ export declare class VirlowApi {
226
236
  * way to hard-delete from here: Claude's deletes can always be undone. */
227
237
  deleteFile(id: string): Promise<void>;
228
238
  restoreFile(id: string): Promise<ApiFile>;
239
+ /** This person's reminders on one note (a to-do is a note): pending ones
240
+ * and those from the last week. */
241
+ listReminders(noteId: string): Promise<ApiReminder[]>;
242
+ /** `label` goes in the email in the clear, so to-do reminders send none. */
243
+ createReminder(body: {
244
+ noteId: string;
245
+ remindAt: string;
246
+ label: string | null;
247
+ channels: string[];
248
+ }): Promise<ApiReminder>;
249
+ deleteReminder(id: string): Promise<{
250
+ deleted: boolean;
251
+ }>;
252
+ /** Where reminders can go besides email. */
253
+ integrations(): Promise<{
254
+ slack: {
255
+ available: boolean;
256
+ connected: boolean;
257
+ };
258
+ }>;
229
259
  }
230
260
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -246,5 +246,23 @@ export class VirlowApi {
246
246
  restoreFile(id) {
247
247
  return this.request('POST', `/api/files/${encodeURIComponent(id)}/restore`);
248
248
  }
249
+ /** This person's reminders on one note (a to-do is a note): pending ones
250
+ * and those from the last week. */
251
+ async listReminders(noteId) {
252
+ const result = await this.request('GET', `/api/reminders?noteId=${encodeURIComponent(noteId)}`);
253
+ return result.reminders;
254
+ }
255
+ /** `label` goes in the email in the clear, so to-do reminders send none. */
256
+ async createReminder(body) {
257
+ const result = await this.request('POST', '/api/reminders', body);
258
+ return result.reminder;
259
+ }
260
+ deleteReminder(id) {
261
+ return this.request('DELETE', `/api/reminders/${encodeURIComponent(id)}`);
262
+ }
263
+ /** Where reminders can go besides email. */
264
+ integrations() {
265
+ return this.request('GET', '/api/integrations');
266
+ }
249
267
  }
250
268
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/cjs/api.d.ts CHANGED
@@ -83,6 +83,16 @@ export interface ApiFolder {
83
83
  /** Encrypted v2 blob of the folder's property and view definitions. */
84
84
  encryptedSchema: string | null;
85
85
  }
86
+ /** A reminder on a note, sent to its owner by email or Slack. */
87
+ export interface ApiReminder {
88
+ id: string;
89
+ noteId: string;
90
+ remindAt: string;
91
+ label: string | null;
92
+ channels: string[];
93
+ /** pending, sent, failed or cancelled. */
94
+ status: string;
95
+ }
86
96
  /** One attachment's metadata. The filename is only ever in encryptedTitle. */
87
97
  export interface ApiFile {
88
98
  id: string;
@@ -226,4 +236,24 @@ export declare class VirlowApi {
226
236
  * way to hard-delete from here: Claude's deletes can always be undone. */
227
237
  deleteFile(id: string): Promise<void>;
228
238
  restoreFile(id: string): Promise<ApiFile>;
239
+ /** This person's reminders on one note (a to-do is a note): pending ones
240
+ * and those from the last week. */
241
+ listReminders(noteId: string): Promise<ApiReminder[]>;
242
+ /** `label` goes in the email in the clear, so to-do reminders send none. */
243
+ createReminder(body: {
244
+ noteId: string;
245
+ remindAt: string;
246
+ label: string | null;
247
+ channels: string[];
248
+ }): Promise<ApiReminder>;
249
+ deleteReminder(id: string): Promise<{
250
+ deleted: boolean;
251
+ }>;
252
+ /** Where reminders can go besides email. */
253
+ integrations(): Promise<{
254
+ slack: {
255
+ available: boolean;
256
+ connected: boolean;
257
+ };
258
+ }>;
229
259
  }
package/dist/cjs/api.js CHANGED
@@ -250,5 +250,23 @@ class VirlowApi {
250
250
  restoreFile(id) {
251
251
  return this.request('POST', `/api/files/${encodeURIComponent(id)}/restore`);
252
252
  }
253
+ /** This person's reminders on one note (a to-do is a note): pending ones
254
+ * and those from the last week. */
255
+ async listReminders(noteId) {
256
+ const result = await this.request('GET', `/api/reminders?noteId=${encodeURIComponent(noteId)}`);
257
+ return result.reminders;
258
+ }
259
+ /** `label` goes in the email in the clear, so to-do reminders send none. */
260
+ async createReminder(body) {
261
+ const result = await this.request('POST', '/api/reminders', body);
262
+ return result.reminder;
263
+ }
264
+ deleteReminder(id) {
265
+ return this.request('DELETE', `/api/reminders/${encodeURIComponent(id)}`);
266
+ }
267
+ /** Where reminders can go besides email. */
268
+ integrations() {
269
+ return this.request('GET', '/api/integrations');
270
+ }
253
271
  }
254
272
  exports.VirlowApi = VirlowApi;
@@ -22,6 +22,8 @@ export { ATTRS_MAX_BYTES, TAGS_PROP, decodeAttrs, decodeSchema, defineProp, empt
22
22
  export type { FolderSchemaV1, NoteAttrsV1, PropDefinition, PropOption, PropType, PropValue, TagsValue } from './attrs.js';
23
23
  export { buildTitleMatcher, extractLinkIds, htmlToText } from './attrs-extract.js';
24
24
  export type { TitleEntry, TitleMatcher } from './attrs-extract.js';
25
+ export { TodoService } from './todos.js';
26
+ export type { AddTodoArgs, CreateTodoListArgs, ListTodosArgs, UpdateTodoArgs } from './todos.js';
25
27
  /**
26
28
  * The MCP tool surface is NOT exported here. It lives at the `/tools` subpath,
27
29
  * which is ESM-only, because it depends on @modelcontextprotocol/sdk — an
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildTitleMatcher = exports.withTags = exports.updateProp = exports.tagsFromAttrs = exports.sortedProps = exports.reorderProps = exports.removeProp = exports.newPropId = exports.encodeSchema = exports.encodeAttrs = exports.emptySchema = exports.emptyAttrs = exports.defineProp = exports.decodeSchema = exports.decodeAttrs = exports.TAGS_PROP = exports.ATTRS_MAX_BYTES = exports.memoriesAllowed = exports.MEMORIES_DISABLED_MESSAGE = exports.EmbeddingCache = exports.filteredNotice = exports.computeExposure = exports.resolveMemoryTree = exports.ensureNamespace = exports.MEMORIES_ROOT_NAME = exports.serializeRegistry = exports.registryKeyFor = exports.parseRegistry = exports.mergeRegistries = exports.emptyRegistry = exports.describedEntities = exports.describeInRegistry = exports.canWriteRegistry = exports.ENTITY_REGISTRY_VERSION = exports.ENTITY_REGISTRY_TITLE = exports.ENTITY_REGISTRY_NOTE_TYPE = exports.toCodeEnvelope = exports.serializeMemoryBody = exports.parseMemoryNote = exports.mergeMeta = exports.MEMORY_NOTE_TYPE = exports.SYNC_PAGE_LIMIT = exports.MemoryStore = exports.AttachmentsService = exports.SEARCH_SCAN_CAP = exports.NotesService = exports.Vault = exports.LockedError = exports.VirlowApi = exports.ApiError = void 0;
4
- exports.htmlToText = exports.extractLinkIds = void 0;
4
+ exports.TodoService = exports.htmlToText = exports.extractLinkIds = void 0;
5
5
  var api_js_1 = require("./api.js");
6
6
  Object.defineProperty(exports, "ApiError", { enumerable: true, get: function () { return api_js_1.ApiError; } });
7
7
  Object.defineProperty(exports, "VirlowApi", { enumerable: true, get: function () { return api_js_1.VirlowApi; } });
@@ -67,6 +67,8 @@ var attrs_extract_js_1 = require("./attrs-extract.js");
67
67
  Object.defineProperty(exports, "buildTitleMatcher", { enumerable: true, get: function () { return attrs_extract_js_1.buildTitleMatcher; } });
68
68
  Object.defineProperty(exports, "extractLinkIds", { enumerable: true, get: function () { return attrs_extract_js_1.extractLinkIds; } });
69
69
  Object.defineProperty(exports, "htmlToText", { enumerable: true, get: function () { return attrs_extract_js_1.htmlToText; } });
70
+ var todos_js_1 = require("./todos.js");
71
+ Object.defineProperty(exports, "TodoService", { enumerable: true, get: function () { return todos_js_1.TodoService; } });
70
72
  /**
71
73
  * The MCP tool surface is NOT exported here. It lives at the `/tools` subpath,
72
74
  * which is ESM-only, because it depends on @modelcontextprotocol/sdk — an
@@ -0,0 +1,111 @@
1
+ /**
2
+ * To-do: the stored format, shared with the iOS app.
3
+ *
4
+ * A task is a note of type `todo`: its text is the encrypted title, its
5
+ * details are the JSON below as the encrypted content, and the note's
6
+ * `archived` flag means done. A list is a note of type `todolist`: its name
7
+ * is the encrypted title and `{v, color, emoji}` the encrypted content. The
8
+ * API lists neither with notes, so apps that predate them never show them.
9
+ *
10
+ * Missing keys read as their defaults (the first iOS build stored tasks with
11
+ * empty content), and keys this version does not know are kept on write, so
12
+ * a newer app's additions survive an older app's edit.
13
+ */
14
+ export declare const TODO_NOTE_TYPE = "todo";
15
+ export declare const TODO_LIST_NOTE_TYPE = "todolist";
16
+ export type Repeat = 'daily' | 'weekdays' | 'weekly' | 'monthly' | 'yearly';
17
+ export declare const REPEATS: Repeat[];
18
+ export interface Step {
19
+ id: string;
20
+ text: string;
21
+ done: boolean;
22
+ }
23
+ export interface TaskDetails {
24
+ v: 1;
25
+ /** A todolist note id; null is the built-in Tasks list. */
26
+ list: string | null;
27
+ important: boolean;
28
+ /** The local day the task was put in My Day; it is in My Day only that day. */
29
+ myDay: string | null;
30
+ /** Local day, YYYY-MM-DD. */
31
+ due: string | null;
32
+ /** ISO time of the pending reminder in /api/reminders for this task. */
33
+ remindAt: string | null;
34
+ repeat: Repeat | null;
35
+ steps: Step[];
36
+ note: string;
37
+ completedAt: string | null;
38
+ /** Keys a newer app wrote, kept as they are. */
39
+ [key: string]: unknown;
40
+ }
41
+ export interface ListMeta {
42
+ v: 1;
43
+ color: string;
44
+ emoji: string | null;
45
+ [key: string]: unknown;
46
+ }
47
+ export declare const DEFAULT_LIST_COLOR = "#5c7fb5";
48
+ export declare function parseDetails(raw: string): TaskDetails;
49
+ export declare function serializeDetails(details: TaskDetails): string;
50
+ export declare function parseListMeta(raw: string): ListMeta;
51
+ export declare function serializeListMeta(meta: ListMeta): string;
52
+ export declare function newId(): string;
53
+ /** A local day as YYYY-MM-DD. */
54
+ export declare function dayKey(date: Date): string;
55
+ /** Local midnight of a YYYY-MM-DD day. */
56
+ export declare function fromDayKey(key: string): Date;
57
+ export declare function addDays(key: string, days: number): string;
58
+ /** Whole days from a to b (b later is positive), by local calendar. */
59
+ export declare function daysBetween(a: string, b: string): number;
60
+ /**
61
+ * The next day a repeating task is due, after `from`. Month and year steps
62
+ * keep the day of the month where it exists and use the month's last day
63
+ * where it does not (Jan 31 → Feb 28).
64
+ */
65
+ export declare function nextOccurrence(repeat: Repeat, from: string): string;
66
+ export interface Task {
67
+ id: string;
68
+ title: string;
69
+ details: TaskDetails;
70
+ done: boolean;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ }
74
+ export interface TodoList {
75
+ id: string;
76
+ name: string;
77
+ meta: ListMeta;
78
+ createdAt: string;
79
+ }
80
+ export type SmartListId = 'myday' | 'important' | 'planned' | 'tasks';
81
+ /** A smart list, or a todolist note id. */
82
+ export type ListKey = SmartListId | `list:${string}`;
83
+ export declare const SMART_LISTS: {
84
+ id: SmartListId;
85
+ label: string;
86
+ }[];
87
+ export declare function listKey(listId: string): ListKey;
88
+ export declare function listIdOf(key: ListKey): string | null;
89
+ export declare function inList(task: Task, key: ListKey, today: string): boolean;
90
+ /** Open tasks oldest first, the order they were written in. */
91
+ export declare function openTasks(tasks: Task[], key: ListKey, today: string): Task[];
92
+ /** Done tasks, most recently finished first. */
93
+ export declare function completedTasks(tasks: Task[], key: ListKey, today: string): Task[];
94
+ export type PlannedGroup = 'Overdue' | 'Today' | 'Tomorrow' | 'Later';
95
+ /** Planned's open tasks in groups, each by due day then age. Empty groups are left out. */
96
+ export declare function plannedGroups(tasks: Task[], today: string): {
97
+ group: PlannedGroup;
98
+ tasks: Task[];
99
+ }[];
100
+ /** What a task added to this list starts with. */
101
+ export declare function detailsForNewTask(key: ListKey, today: string): TaskDetails;
102
+ /**
103
+ * The task that follows a repeating one when it is done: the same text, list,
104
+ * importance, repeat, note and steps (all open again), due on the next
105
+ * occurrence after its due day, or after today when it had none. A reminder
106
+ * moves by the same number of days.
107
+ */
108
+ export declare function nextRepeat(task: Task, today: string): TaskDetails | null;
109
+ export declare function repeatLabel(repeat: Repeat): string;
110
+ /** "Today", "Tomorrow", "Yesterday", "Mon, Oct 20", or with the year when not this year. */
111
+ export declare function dueLabel(due: string, today: string): string;
@@ -0,0 +1,285 @@
1
+ "use strict";
2
+ /**
3
+ * To-do: the stored format, shared with the iOS app.
4
+ *
5
+ * A task is a note of type `todo`: its text is the encrypted title, its
6
+ * details are the JSON below as the encrypted content, and the note's
7
+ * `archived` flag means done. A list is a note of type `todolist`: its name
8
+ * is the encrypted title and `{v, color, emoji}` the encrypted content. The
9
+ * API lists neither with notes, so apps that predate them never show them.
10
+ *
11
+ * Missing keys read as their defaults (the first iOS build stored tasks with
12
+ * empty content), and keys this version does not know are kept on write, so
13
+ * a newer app's additions survive an older app's edit.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.SMART_LISTS = exports.DEFAULT_LIST_COLOR = exports.REPEATS = exports.TODO_LIST_NOTE_TYPE = exports.TODO_NOTE_TYPE = void 0;
17
+ exports.parseDetails = parseDetails;
18
+ exports.serializeDetails = serializeDetails;
19
+ exports.parseListMeta = parseListMeta;
20
+ exports.serializeListMeta = serializeListMeta;
21
+ exports.newId = newId;
22
+ exports.dayKey = dayKey;
23
+ exports.fromDayKey = fromDayKey;
24
+ exports.addDays = addDays;
25
+ exports.daysBetween = daysBetween;
26
+ exports.nextOccurrence = nextOccurrence;
27
+ exports.listKey = listKey;
28
+ exports.listIdOf = listIdOf;
29
+ exports.inList = inList;
30
+ exports.openTasks = openTasks;
31
+ exports.completedTasks = completedTasks;
32
+ exports.plannedGroups = plannedGroups;
33
+ exports.detailsForNewTask = detailsForNewTask;
34
+ exports.nextRepeat = nextRepeat;
35
+ exports.repeatLabel = repeatLabel;
36
+ exports.dueLabel = dueLabel;
37
+ exports.TODO_NOTE_TYPE = 'todo';
38
+ exports.TODO_LIST_NOTE_TYPE = 'todolist';
39
+ exports.REPEATS = ['daily', 'weekdays', 'weekly', 'monthly', 'yearly'];
40
+ exports.DEFAULT_LIST_COLOR = '#5c7fb5';
41
+ const DAY = /^\d{4}-\d{2}-\d{2}$/;
42
+ function str(value) {
43
+ return typeof value === 'string' && value.length > 0 ? value : null;
44
+ }
45
+ function day(value) {
46
+ return typeof value === 'string' && DAY.test(value) ? value : null;
47
+ }
48
+ function parseObject(raw) {
49
+ if (!raw || !raw.trim())
50
+ return {};
51
+ try {
52
+ const parsed = JSON.parse(raw);
53
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
54
+ ? parsed
55
+ : {};
56
+ }
57
+ catch {
58
+ return {};
59
+ }
60
+ }
61
+ function parseDetails(raw) {
62
+ const o = parseObject(raw);
63
+ const steps = Array.isArray(o.steps)
64
+ ? o.steps.flatMap((s) => {
65
+ if (!s || typeof s !== 'object')
66
+ return [];
67
+ const step = s;
68
+ if (typeof step.text !== 'string')
69
+ return [];
70
+ return [
71
+ {
72
+ id: typeof step.id === 'string' && step.id ? step.id : newId(),
73
+ text: step.text,
74
+ done: step.done === true,
75
+ },
76
+ ];
77
+ })
78
+ : [];
79
+ return {
80
+ ...o,
81
+ v: 1,
82
+ list: str(o.list),
83
+ important: o.important === true,
84
+ myDay: day(o.myDay),
85
+ due: day(o.due),
86
+ remindAt: str(o.remindAt),
87
+ repeat: exports.REPEATS.includes(o.repeat) ? o.repeat : null,
88
+ steps,
89
+ note: typeof o.note === 'string' ? o.note : '',
90
+ completedAt: str(o.completedAt),
91
+ };
92
+ }
93
+ function serializeDetails(details) {
94
+ return JSON.stringify({ ...details, v: 1 });
95
+ }
96
+ function parseListMeta(raw) {
97
+ const o = parseObject(raw);
98
+ return {
99
+ ...o,
100
+ v: 1,
101
+ color: typeof o.color === 'string' && /^#[0-9a-f]{6}$/i.test(o.color) ? o.color : exports.DEFAULT_LIST_COLOR,
102
+ emoji: str(o.emoji),
103
+ };
104
+ }
105
+ function serializeListMeta(meta) {
106
+ return JSON.stringify({ ...meta, v: 1 });
107
+ }
108
+ function newId() {
109
+ return typeof crypto !== 'undefined' && 'randomUUID' in crypto
110
+ ? crypto.randomUUID()
111
+ : `${Date.now().toString(36)}${Math.random().toString(36).slice(2, 10)}`;
112
+ }
113
+ // MARK: Days
114
+ /** A local day as YYYY-MM-DD. */
115
+ function dayKey(date) {
116
+ const y = date.getFullYear();
117
+ const m = String(date.getMonth() + 1).padStart(2, '0');
118
+ const d = String(date.getDate()).padStart(2, '0');
119
+ return `${y}-${m}-${d}`;
120
+ }
121
+ /** Local midnight of a YYYY-MM-DD day. */
122
+ function fromDayKey(key) {
123
+ const [y = 1970, m = 1, d = 1] = key.split('-').map(Number);
124
+ return new Date(y, m - 1, d);
125
+ }
126
+ function addDays(key, days) {
127
+ const date = fromDayKey(key);
128
+ date.setDate(date.getDate() + days);
129
+ return dayKey(date);
130
+ }
131
+ /** Whole days from a to b (b later is positive), by local calendar. */
132
+ function daysBetween(a, b) {
133
+ return Math.round((fromDayKey(b).getTime() - fromDayKey(a).getTime()) / 86_400_000);
134
+ }
135
+ /**
136
+ * The next day a repeating task is due, after `from`. Month and year steps
137
+ * keep the day of the month where it exists and use the month's last day
138
+ * where it does not (Jan 31 → Feb 28).
139
+ */
140
+ function nextOccurrence(repeat, from) {
141
+ const date = fromDayKey(from);
142
+ switch (repeat) {
143
+ case 'daily':
144
+ return addDays(from, 1);
145
+ case 'weekdays': {
146
+ let next = addDays(from, 1);
147
+ while ([0, 6].includes(fromDayKey(next).getDay()))
148
+ next = addDays(next, 1);
149
+ return next;
150
+ }
151
+ case 'weekly':
152
+ return addDays(from, 7);
153
+ case 'monthly':
154
+ case 'yearly': {
155
+ const months = repeat === 'monthly' ? 1 : 12;
156
+ const target = new Date(date.getFullYear(), date.getMonth() + months, 1);
157
+ const last = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();
158
+ target.setDate(Math.min(date.getDate(), last));
159
+ return dayKey(target);
160
+ }
161
+ }
162
+ }
163
+ exports.SMART_LISTS = [
164
+ { id: 'myday', label: 'My Day' },
165
+ { id: 'important', label: 'Important' },
166
+ { id: 'planned', label: 'Planned' },
167
+ { id: 'tasks', label: 'Tasks' },
168
+ ];
169
+ function listKey(listId) {
170
+ return `list:${listId}`;
171
+ }
172
+ function listIdOf(key) {
173
+ return key.startsWith('list:') ? key.slice(5) : null;
174
+ }
175
+ function inList(task, key, today) {
176
+ const d = task.details;
177
+ switch (key) {
178
+ case 'myday':
179
+ return d.myDay === today;
180
+ case 'important':
181
+ return d.important;
182
+ case 'planned':
183
+ return d.due !== null;
184
+ case 'tasks':
185
+ return d.list === null;
186
+ default:
187
+ return d.list === listIdOf(key);
188
+ }
189
+ }
190
+ /** Open tasks oldest first, the order they were written in. */
191
+ function openTasks(tasks, key, today) {
192
+ return tasks
193
+ .filter((t) => !t.done && inList(t, key, today))
194
+ .sort((a, b) => a.createdAt.localeCompare(b.createdAt));
195
+ }
196
+ /** Done tasks, most recently finished first. */
197
+ function completedTasks(tasks, key, today) {
198
+ return tasks
199
+ .filter((t) => t.done && inList(t, key, today))
200
+ .sort((a, b) => (b.details.completedAt ?? b.updatedAt).localeCompare(a.details.completedAt ?? a.updatedAt));
201
+ }
202
+ /** Planned's open tasks in groups, each by due day then age. Empty groups are left out. */
203
+ function plannedGroups(tasks, today) {
204
+ const open = openTasks(tasks, 'planned', today).sort((a, b) => a.details.due.localeCompare(b.details.due) || a.createdAt.localeCompare(b.createdAt));
205
+ const tomorrow = addDays(today, 1);
206
+ const groupOf = (due) => due < today ? 'Overdue' : due === today ? 'Today' : due === tomorrow ? 'Tomorrow' : 'Later';
207
+ const order = ['Overdue', 'Today', 'Tomorrow', 'Later'];
208
+ return order
209
+ .map((group) => ({ group, tasks: open.filter((t) => groupOf(t.details.due) === group) }))
210
+ .filter((g) => g.tasks.length > 0);
211
+ }
212
+ /** What a task added to this list starts with. */
213
+ function detailsForNewTask(key, today) {
214
+ const details = parseDetails('');
215
+ if (key === 'myday')
216
+ details.myDay = today;
217
+ else if (key === 'important')
218
+ details.important = true;
219
+ else if (key === 'planned')
220
+ details.due = today;
221
+ else {
222
+ const id = listIdOf(key);
223
+ if (id)
224
+ details.list = id;
225
+ }
226
+ return details;
227
+ }
228
+ /**
229
+ * The task that follows a repeating one when it is done: the same text, list,
230
+ * importance, repeat, note and steps (all open again), due on the next
231
+ * occurrence after its due day, or after today when it had none. A reminder
232
+ * moves by the same number of days.
233
+ */
234
+ function nextRepeat(task, today) {
235
+ const d = task.details;
236
+ if (!d.repeat)
237
+ return null;
238
+ const base = d.due ?? today;
239
+ const due = nextOccurrence(d.repeat, base);
240
+ const shift = daysBetween(base, due);
241
+ let remindAt = null;
242
+ if (d.remindAt) {
243
+ const at = new Date(d.remindAt);
244
+ if (!Number.isNaN(at.getTime())) {
245
+ at.setDate(at.getDate() + shift);
246
+ remindAt = at.toISOString();
247
+ }
248
+ }
249
+ return {
250
+ ...d,
251
+ due,
252
+ remindAt,
253
+ myDay: null,
254
+ completedAt: null,
255
+ steps: d.steps.map((s) => ({ ...s, id: newId(), done: false })),
256
+ };
257
+ }
258
+ const REPEAT_LABELS = {
259
+ daily: 'Daily',
260
+ weekdays: 'Weekdays',
261
+ weekly: 'Weekly',
262
+ monthly: 'Monthly',
263
+ yearly: 'Yearly',
264
+ };
265
+ function repeatLabel(repeat) {
266
+ return REPEAT_LABELS[repeat];
267
+ }
268
+ /** "Today", "Tomorrow", "Yesterday", "Mon, Oct 20", or with the year when not this year. */
269
+ function dueLabel(due, today) {
270
+ const diff = daysBetween(today, due);
271
+ if (diff === 0)
272
+ return 'Today';
273
+ if (diff === 1)
274
+ return 'Tomorrow';
275
+ if (diff === -1)
276
+ return 'Yesterday';
277
+ const date = fromDayKey(due);
278
+ const sameYear = date.getFullYear() === fromDayKey(today).getFullYear();
279
+ return date.toLocaleDateString('en-US', {
280
+ weekday: 'short',
281
+ month: 'short',
282
+ day: 'numeric',
283
+ ...(sameYear ? {} : { year: 'numeric' }),
284
+ });
285
+ }