botnote 0.1.28 → 0.1.29

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.
Files changed (46) hide show
  1. package/README.md +13 -4
  2. package/dist/bin.js +27 -8
  3. package/dist/bin.js.map +1 -1
  4. package/dist/cli.js +24 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/db/migrations/0018_project_archived_at.sql +8 -0
  7. package/dist/db/migrations/0019_project_status.sql +20 -0
  8. package/dist/db/migrations/0020_project_archived_status.sql +20 -0
  9. package/dist/db/migrations/0021_workspace_settings.sql +18 -0
  10. package/dist/db/schema.d.ts +112 -0
  11. package/dist/db/schema.js +9 -0
  12. package/dist/db/schema.js.map +1 -1
  13. package/dist/mcp/http-client.d.ts +16 -1
  14. package/dist/mcp/http-client.js +22 -2
  15. package/dist/mcp/http-client.js.map +1 -1
  16. package/dist/mcp/server.js +39 -15
  17. package/dist/mcp/server.js.map +1 -1
  18. package/dist/rest/routes.js +107 -16
  19. package/dist/rest/routes.js.map +1 -1
  20. package/dist/service/dates.d.ts +11 -0
  21. package/dist/service/dates.js +31 -0
  22. package/dist/service/dates.js.map +1 -1
  23. package/dist/service/entities.js +52 -3
  24. package/dist/service/entities.js.map +1 -1
  25. package/dist/service/projects.d.ts +2 -2
  26. package/dist/service/projects.js +15 -4
  27. package/dist/service/projects.js.map +1 -1
  28. package/dist/service/recurrence.d.ts +39 -0
  29. package/dist/service/recurrence.js +230 -21
  30. package/dist/service/recurrence.js.map +1 -1
  31. package/dist/service/search.js +9 -4
  32. package/dist/service/search.js.map +1 -1
  33. package/dist/service/tasks.d.ts +15 -0
  34. package/dist/service/tasks.js +179 -3
  35. package/dist/service/tasks.js.map +1 -1
  36. package/dist/service/types.d.ts +36 -7
  37. package/dist/service/types.js +22 -7
  38. package/dist/service/types.js.map +1 -1
  39. package/dist/service/workspace_settings.d.ts +8 -0
  40. package/dist/service/workspace_settings.js +53 -0
  41. package/dist/service/workspace_settings.js.map +1 -0
  42. package/package.json +1 -1
  43. package/web/dist/assets/{index-D-Ojc9qs.js → index-B8-PIXjH.js} +139 -134
  44. package/web/dist/assets/index-Bt8xPxDL.css +1 -0
  45. package/web/dist/index.html +2 -2
  46. package/web/dist/assets/index-BLQefDfj.css +0 -1
@@ -1,5 +1,20 @@
1
- import { and, asc, desc, eq, gte, inArray, isNotNull, isNull, lt, ne, or } from "drizzle-orm";
2
- import { entities } from "../db/schema.js";
1
+ import { and, asc, desc, eq, gte, inArray, isNotNull, isNull, lt, lte, ne, or, sql } from "drizzle-orm";
2
+ import { entities, recurrenceExceptions, recurrenceRules } from "../db/schema.js";
3
+ import { buildRRule, materializeScheduledRecurrences, normalizeOccurrenceDueAt } from "./recurrence.js";
4
+ function endOfToday(now) {
5
+ const end = new Date(now);
6
+ end.setHours(23, 59, 59, 999);
7
+ return end;
8
+ }
9
+ function materializationHorizon(input, now) {
10
+ const todayEnd = endOfToday(now);
11
+ if (!input.to)
12
+ return todayEnd;
13
+ const requestedEnd = new Date(input.to);
14
+ if (Number.isNaN(requestedEnd.getTime()))
15
+ return todayEnd;
16
+ return requestedEnd.getTime() < todayEnd.getTime() ? requestedEnd : todayEnd;
17
+ }
3
18
  /**
4
19
  * Tasks in a date range, split into scheduled / overdue / backlog buckets.
5
20
  *
@@ -16,9 +31,15 @@ import { entities } from "../db/schema.js";
16
31
  */
17
32
  export async function tasksRange(db, input) {
18
33
  const now = new Date();
34
+ await materializeScheduledRecurrences(db, materializationHorizon(input, now));
19
35
  const projectFilter = input.projectIds?.length
20
36
  ? inArray(entities.projectId, input.projectIds)
21
37
  : undefined;
38
+ const activeProjectFilter = projectFilter
39
+ ? undefined
40
+ : sql `(${entities.projectId} IS NULL OR ${entities.projectId} IN (
41
+ SELECT id FROM projects WHERE status <> 'archived'
42
+ ))`;
22
43
  // Base filter applied to every bucket: only tasks, optional project filter,
23
44
  // and the includeDone toggle.
24
45
  const baseConds = [eq(entities.kind, "task")];
@@ -27,6 +48,8 @@ export async function tasksRange(db, input) {
27
48
  }
28
49
  if (projectFilter)
29
50
  baseConds.push(projectFilter);
51
+ if (activeProjectFilter)
52
+ baseConds.push(activeProjectFilter);
30
53
  // Three independent passes, unioned in JS. Drizzle's `or` keeps the SQL
31
54
  // clear and the partial completed_at index keeps the done-pass cheap.
32
55
  const inRange = (col) => {
@@ -63,6 +86,8 @@ export async function tasksRange(db, input) {
63
86
  ];
64
87
  if (projectFilter)
65
88
  doneByCompletedConds.push(projectFilter);
89
+ if (activeProjectFilter)
90
+ doneByCompletedConds.push(activeProjectFilter);
66
91
  const completedRows = await db
67
92
  .select()
68
93
  .from(entities)
@@ -76,6 +101,8 @@ export async function tasksRange(db, input) {
76
101
  ];
77
102
  if (projectFilter)
78
103
  legacyDoneConds.push(projectFilter);
104
+ if (activeProjectFilter)
105
+ legacyDoneConds.push(activeProjectFilter);
79
106
  const legacyRows = await db
80
107
  .select()
81
108
  .from(entities)
@@ -92,6 +119,8 @@ export async function tasksRange(db, input) {
92
119
  const ipConds = [eq(entities.kind, "task"), eq(entities.status, "in_progress")];
93
120
  if (projectFilter)
94
121
  ipConds.push(projectFilter);
122
+ if (activeProjectFilter)
123
+ ipConds.push(activeProjectFilter);
95
124
  inProgressToday = await db
96
125
  .select()
97
126
  .from(entities)
@@ -122,6 +151,8 @@ export async function tasksRange(db, input) {
122
151
  ];
123
152
  if (projectFilter)
124
153
  overdueConds.push(projectFilter);
154
+ if (activeProjectFilter)
155
+ overdueConds.push(activeProjectFilter);
125
156
  const overdue = await db
126
157
  .select()
127
158
  .from(entities)
@@ -136,6 +167,151 @@ export async function tasksRange(db, input) {
136
167
  .orderBy(desc(entities.createdAt))
137
168
  .limit(200);
138
169
  }
139
- return { scheduled, overdue, backlog };
170
+ const virtualOccurrences = await expandVirtualOccurrences(db, input, scheduled);
171
+ return { scheduled, overdue, backlog, virtualOccurrences };
172
+ }
173
+ /**
174
+ * Compute "ghost" virtual occurrences for all active scheduled-anchor
175
+ * recurrence rules within the query window. These are NOT stored in the DB;
176
+ * they are ephemeral previews of future materialization.
177
+ *
178
+ * HARD BOUNDARY: only called when input.includeVirtualRecurrences is true.
179
+ * The window is clamped to [max(input.from, now), input.to) so only strictly
180
+ * future ghosts are returned.
181
+ */
182
+ async function expandVirtualOccurrences(db, input, realScheduled) {
183
+ // Guard: feature must be explicitly requested and a horizon must be present.
184
+ if (!input.includeVirtualRecurrences || !input.to)
185
+ return [];
186
+ const now = new Date();
187
+ const windowStart = new Date(Math.max((input.from ? new Date(input.from).getTime() : now.getTime()), now.getTime()));
188
+ const windowEnd = new Date(input.to);
189
+ if (windowStart.getTime() >= windowEnd.getTime())
190
+ return [];
191
+ // --- Query 1: candidate rules (enabled, scheduled, not ended before window) ---
192
+ const candidateRules = await db
193
+ .select()
194
+ .from(recurrenceRules)
195
+ .where(and(eq(recurrenceRules.enabled, true), eq(recurrenceRules.anchor, "scheduled"), lte(recurrenceRules.dtstart, windowEnd), or(isNull(recurrenceRules.endedAt),
196
+ // endedAt >= windowStart means rule may still have occurrences in window
197
+ gte(recurrenceRules.endedAt, windowStart))));
198
+ if (candidateRules.length === 0)
199
+ return [];
200
+ // --- Query 2: batch-fetch display-source entities ---
201
+ // For each rule: display source = currentOccurrenceId ?? seriesId
202
+ const displaySourceIds = candidateRules.map((r) => r.currentOccurrenceId ?? r.seriesId);
203
+ const uniqueDisplaySourceIds = [...new Set(displaySourceIds)];
204
+ const displaySourceRows = await db
205
+ .select()
206
+ .from(entities)
207
+ .where(inArray(entities.id, uniqueDisplaySourceIds));
208
+ const displaySourceById = new Map(displaySourceRows.map((e) => [e.id, e]));
209
+ // --- Query 3: batch-fetch this-only baselines for display sources ---
210
+ // These are 'modified' exceptions where the baseline records what the
211
+ // pre-edit value was; we apply them so a this-only edit on the current
212
+ // occurrence is NOT reflected in the ghost (the ghost should show what
213
+ // materialization will actually generate, which reverts this-only edits).
214
+ const modifiedExceptions = await db
215
+ .select()
216
+ .from(recurrenceExceptions)
217
+ .where(and(inArray(recurrenceExceptions.entityId, uniqueDisplaySourceIds), eq(recurrenceExceptions.action, "modified")));
218
+ // Map entityId → baseline (the pre-edit / series-default value)
219
+ const baselineByEntityId = new Map();
220
+ for (const exc of modifiedExceptions) {
221
+ if (!exc.entityId)
222
+ continue;
223
+ const meta = exc.metadata;
224
+ const baseline = meta?.baseline;
225
+ if (baseline && typeof baseline === "object" && !Array.isArray(baseline)) {
226
+ baselineByEntityId.set(exc.entityId, baseline);
227
+ }
228
+ }
229
+ // --- Query 4: batch-fetch exceptions for subtraction ---
230
+ const ruleIds = candidateRules.map((r) => r.id);
231
+ const exceptionRows = await db
232
+ .select()
233
+ .from(recurrenceExceptions)
234
+ .where(and(inArray(recurrenceExceptions.ruleId, ruleIds), gte(recurrenceExceptions.occurrenceAt, windowStart), lt(recurrenceExceptions.occurrenceAt, windowEnd)));
235
+ // Group exceptions by ruleId; track the blocked occurrence timestamps on the
236
+ // SAME normalized timeline used for the ghosts below (occurrenceAt is already
237
+ // stored normalized, so re-normalizing is idempotent — but it keeps the
238
+ // exception and materialized subtractions on one consistent timeline even for
239
+ // extreme timezones where a raw RRule date and its normalized dueAt differ).
240
+ const ruleById = new Map(candidateRules.map((r) => [r.id, r]));
241
+ const blockedByRule = new Map();
242
+ for (const exc of exceptionRows) {
243
+ if (exc.action === "skipped" || exc.action === "cancelled" || exc.action === "modified") {
244
+ const rule = ruleById.get(exc.ruleId);
245
+ if (!rule)
246
+ continue;
247
+ if (!blockedByRule.has(exc.ruleId))
248
+ blockedByRule.set(exc.ruleId, new Set());
249
+ blockedByRule.get(exc.ruleId).add(normalizeOccurrenceDueAt(rule, exc.occurrenceAt).getTime());
250
+ }
251
+ }
252
+ // Build a set of (ruleId, normalizedDueAt ms) that are already materialized
253
+ // so we can subtract them from virtuals.
254
+ const realByRule = new Map();
255
+ for (const e of realScheduled) {
256
+ const meta = e.metadata;
257
+ const ruleId = meta?.recurrence?.ruleId;
258
+ if (!ruleId || !e.dueAt)
259
+ continue;
260
+ if (!realByRule.has(ruleId))
261
+ realByRule.set(ruleId, new Set());
262
+ realByRule.get(ruleId).add(e.dueAt.getTime());
263
+ }
264
+ // --- Expand per rule ---
265
+ const virtuals = [];
266
+ for (const rule of candidateRules) {
267
+ const displaySourceId = rule.currentOccurrenceId ?? rule.seriesId;
268
+ const displaySource = displaySourceById.get(displaySourceId);
269
+ if (!displaySource)
270
+ continue;
271
+ // Project filter
272
+ if (input.projectIds?.length) {
273
+ if (!displaySource.projectId || !input.projectIds.includes(displaySource.projectId))
274
+ continue;
275
+ }
276
+ // Resolve effective title and priority (apply baseline to revert this-only edits)
277
+ const baseline = baselineByEntityId.get(displaySourceId);
278
+ const effectiveTitle = baseline && "title" in baseline
279
+ ? baseline.title
280
+ : displaySource.title;
281
+ const effectivePriority = baseline && "priority" in baseline
282
+ ? (baseline.priority ?? "none")
283
+ : displaySource.priority;
284
+ // Expand RRule within window
285
+ const rruleInstance = buildRRule(rule, rule.dtstart);
286
+ const rawDates = rruleInstance.between(windowStart, windowEnd, true);
287
+ const blockedTimes = blockedByRule.get(rule.id);
288
+ const realTimes = realByRule.get(rule.id);
289
+ for (const rawDate of rawDates) {
290
+ const normalizedDate = normalizeOccurrenceDueAt(rule, rawDate);
291
+ const normalizedMs = normalizedDate.getTime();
292
+ // Subtract: blocked by a skip/cancel/modify exception (normalized timeline)
293
+ if (blockedTimes?.has(normalizedMs))
294
+ continue;
295
+ // Subtract: already materialized as a real entity (match by normalized dueAt)
296
+ if (realTimes?.has(normalizedMs))
297
+ continue;
298
+ const dueAtISO = normalizedDate.toISOString();
299
+ virtuals.push({
300
+ virtual: true,
301
+ id: `virtual:${rule.id}:${dueAtISO}`,
302
+ ruleId: rule.id,
303
+ seriesId: rule.seriesId,
304
+ occurrenceAt: rawDate.toISOString(),
305
+ dueAt: dueAtISO,
306
+ title: effectiveTitle,
307
+ projectId: displaySource.projectId,
308
+ priority: effectivePriority,
309
+ allDay: rule.allDay,
310
+ timezone: rule.timezone,
311
+ rrule: rule.rrule
312
+ });
313
+ }
314
+ }
315
+ return virtuals;
140
316
  }
141
317
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/service/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/service/tasks.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  export declare const EntityKindEnum: z.ZodEnum<["task", "note"]>;
3
3
  export declare const ActorKindEnum: z.ZodEnum<["human", "agent", "system"]>;
4
4
  export declare const EdgeKindEnum: z.ZodEnum<["blocks", "references", "parent_of"]>;
5
+ export declare const ProjectStatusEnum: z.ZodEnum<["planned", "active", "watching", "paused", "archived"]>;
5
6
  export declare const PriorityEnum: z.ZodEnum<["urgent", "high", "medium", "low", "none"]>;
6
7
  export declare const RecurrenceAnchorEnum: z.ZodEnum<["scheduled", "completion"]>;
7
8
  export declare const RecurrenceFrequencyEnum: z.ZodEnum<["hourly", "daily", "weekly", "monthly", "yearly"]>;
@@ -150,6 +151,7 @@ export declare const UpdateInput: z.ZodObject<{
150
151
  dueAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
151
152
  priority: z.ZodOptional<z.ZodEnum<["urgent", "high", "medium", "low", "none"]>>;
152
153
  pinned: z.ZodOptional<z.ZodBoolean>;
154
+ recurrenceScope: z.ZodOptional<z.ZodEnum<["this", "future"]>>;
153
155
  }, "strip", z.ZodTypeAny, {
154
156
  status?: "open" | "in_progress" | "done" | "rejected" | undefined;
155
157
  priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
@@ -160,6 +162,7 @@ export declare const UpdateInput: z.ZodObject<{
160
162
  metadata?: Record<string, unknown> | undefined;
161
163
  dueAt?: Date | null | undefined;
162
164
  pinned?: boolean | undefined;
165
+ recurrenceScope?: "this" | "future" | undefined;
163
166
  }, {
164
167
  status?: unknown;
165
168
  priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
@@ -170,6 +173,7 @@ export declare const UpdateInput: z.ZodObject<{
170
173
  metadata?: Record<string, unknown> | undefined;
171
174
  dueAt?: Date | null | undefined;
172
175
  pinned?: boolean | undefined;
176
+ recurrenceScope?: "this" | "future" | undefined;
173
177
  }>;
174
178
  export type UpdateInput = z.infer<typeof UpdateInput>;
175
179
  export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
@@ -183,13 +187,12 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
183
187
  until: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
184
188
  count: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
185
189
  dtstart: z.ZodOptional<z.ZodDate>;
186
- timezone: z.ZodDefault<z.ZodString>;
190
+ timezone: z.ZodOptional<z.ZodString>;
187
191
  allDay: z.ZodDefault<z.ZodBoolean>;
188
192
  anchor: z.ZodDefault<z.ZodEnum<["scheduled", "completion"]>>;
189
193
  }, "strip", z.ZodTypeAny, {
190
194
  anchor: "scheduled" | "completion";
191
195
  interval: number;
192
- timezone: string;
193
196
  allDay: boolean;
194
197
  rrule?: string | undefined;
195
198
  dtstart?: Date | undefined;
@@ -199,6 +202,7 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
199
202
  byMonth?: number[] | undefined;
200
203
  until?: Date | null | undefined;
201
204
  count?: number | null | undefined;
205
+ timezone?: string | undefined;
202
206
  bySetPos?: number | undefined;
203
207
  }, {
204
208
  anchor?: "scheduled" | "completion" | undefined;
@@ -217,7 +221,6 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
217
221
  }>, {
218
222
  anchor: "scheduled" | "completion";
219
223
  interval: number;
220
- timezone: string;
221
224
  allDay: boolean;
222
225
  rrule?: string | undefined;
223
226
  dtstart?: Date | undefined;
@@ -227,6 +230,7 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
227
230
  byMonth?: number[] | undefined;
228
231
  until?: Date | null | undefined;
229
232
  count?: number | null | undefined;
233
+ timezone?: string | undefined;
230
234
  bySetPos?: number | undefined;
231
235
  }, {
232
236
  anchor?: "scheduled" | "completion" | undefined;
@@ -245,7 +249,6 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
245
249
  }>, {
246
250
  anchor: "scheduled" | "completion";
247
251
  interval: number;
248
- timezone: string;
249
252
  allDay: boolean;
250
253
  rrule?: string | undefined;
251
254
  dtstart?: Date | undefined;
@@ -255,6 +258,7 @@ export declare const RecurrenceInput: z.ZodEffects<z.ZodEffects<z.ZodObject<{
255
258
  byMonth?: number[] | undefined;
256
259
  until?: Date | null | undefined;
257
260
  count?: number | null | undefined;
261
+ timezone?: string | undefined;
258
262
  bySetPos?: number | undefined;
259
263
  }, {
260
264
  anchor?: "scheduled" | "completion" | undefined;
@@ -283,7 +287,7 @@ export declare const UpdateRecurrenceInput: z.ZodObject<{
283
287
  until: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodDate>>>;
284
288
  count: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
285
289
  dtstart: z.ZodOptional<z.ZodOptional<z.ZodDate>>;
286
- timezone: z.ZodOptional<z.ZodDefault<z.ZodString>>;
290
+ timezone: z.ZodOptional<z.ZodOptional<z.ZodString>>;
287
291
  allDay: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
288
292
  anchor: z.ZodOptional<z.ZodDefault<z.ZodEnum<["scheduled", "completion"]>>>;
289
293
  } & {
@@ -379,9 +383,11 @@ export declare const TasksRangeInput: z.ZodObject<{
379
383
  projectIds: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
380
384
  includeBacklog: z.ZodDefault<z.ZodBoolean>;
381
385
  includeDone: z.ZodDefault<z.ZodBoolean>;
386
+ includeVirtualRecurrences: z.ZodDefault<z.ZodBoolean>;
382
387
  }, "strip", z.ZodTypeAny, {
383
388
  includeBacklog: boolean;
384
389
  includeDone: boolean;
390
+ includeVirtualRecurrences: boolean;
385
391
  from?: Date | null | undefined;
386
392
  to?: Date | null | undefined;
387
393
  projectIds?: string[] | null | undefined;
@@ -391,6 +397,7 @@ export declare const TasksRangeInput: z.ZodObject<{
391
397
  projectIds?: string[] | null | undefined;
392
398
  includeBacklog?: boolean | undefined;
393
399
  includeDone?: boolean | undefined;
400
+ includeVirtualRecurrences?: boolean | undefined;
394
401
  }>;
395
402
  export type TasksRangeInput = z.infer<typeof TasksRangeInput>;
396
403
  export declare const LinkInput: z.ZodObject<{
@@ -421,10 +428,12 @@ export type OpeningBriefInput = z.infer<typeof OpeningBriefInput>;
421
428
  export declare const CreateProjectInput: z.ZodObject<{
422
429
  key: z.ZodString;
423
430
  name: z.ZodString;
431
+ status: z.ZodDefault<z.ZodEnum<["planned", "active", "watching", "paused", "archived"]>>;
424
432
  color: z.ZodDefault<z.ZodString>;
425
433
  icon: z.ZodDefault<z.ZodString>;
426
434
  agentsMd: z.ZodDefault<z.ZodString>;
427
- }, "strip", z.ZodTypeAny, {
435
+ }, "strict", z.ZodTypeAny, {
436
+ status: "archived" | "active" | "planned" | "watching" | "paused";
428
437
  name: string;
429
438
  key: string;
430
439
  color: string;
@@ -433,6 +442,7 @@ export declare const CreateProjectInput: z.ZodObject<{
433
442
  }, {
434
443
  name: string;
435
444
  key: string;
445
+ status?: "archived" | "active" | "planned" | "watching" | "paused" | undefined;
436
446
  color?: string | undefined;
437
447
  icon?: string | undefined;
438
448
  agentsMd?: string | undefined;
@@ -440,21 +450,32 @@ export declare const CreateProjectInput: z.ZodObject<{
440
450
  export type CreateProjectInput = z.infer<typeof CreateProjectInput>;
441
451
  export declare const UpdateProjectInput: z.ZodObject<{
442
452
  name: z.ZodOptional<z.ZodString>;
453
+ status: z.ZodOptional<z.ZodEnum<["planned", "active", "watching", "paused", "archived"]>>;
443
454
  color: z.ZodOptional<z.ZodString>;
444
455
  icon: z.ZodOptional<z.ZodString>;
445
456
  agentsMd: z.ZodOptional<z.ZodString>;
446
- }, "strip", z.ZodTypeAny, {
457
+ }, "strict", z.ZodTypeAny, {
458
+ status?: "archived" | "active" | "planned" | "watching" | "paused" | undefined;
447
459
  name?: string | undefined;
448
460
  color?: string | undefined;
449
461
  icon?: string | undefined;
450
462
  agentsMd?: string | undefined;
451
463
  }, {
464
+ status?: "archived" | "active" | "planned" | "watching" | "paused" | undefined;
452
465
  name?: string | undefined;
453
466
  color?: string | undefined;
454
467
  icon?: string | undefined;
455
468
  agentsMd?: string | undefined;
456
469
  }>;
457
470
  export type UpdateProjectInput = z.infer<typeof UpdateProjectInput>;
471
+ export declare const ListProjectsInput: z.ZodObject<{
472
+ includeArchived: z.ZodDefault<z.ZodBoolean>;
473
+ }, "strip", z.ZodTypeAny, {
474
+ includeArchived: boolean;
475
+ }, {
476
+ includeArchived?: boolean | undefined;
477
+ }>;
478
+ export type ListProjectsInput = z.infer<typeof ListProjectsInput>;
458
479
  export declare const CreateTokenInput: z.ZodObject<{
459
480
  name: z.ZodString;
460
481
  }, "strip", z.ZodTypeAny, {
@@ -485,6 +506,14 @@ export declare const UpdateEmbeddingSettingsInput: z.ZodObject<{
485
506
  apiKey?: string | null | undefined;
486
507
  }>;
487
508
  export type UpdateEmbeddingSettingsInput = z.infer<typeof UpdateEmbeddingSettingsInput>;
509
+ export declare const UpdateWorkspaceSettingsInput: z.ZodObject<{
510
+ timezone: z.ZodOptional<z.ZodString>;
511
+ }, "strip", z.ZodTypeAny, {
512
+ timezone?: string | undefined;
513
+ }, {
514
+ timezone?: string | undefined;
515
+ }>;
516
+ export type UpdateWorkspaceSettingsInput = z.infer<typeof UpdateWorkspaceSettingsInput>;
488
517
  export declare const EmbeddingBackfillInput: z.ZodObject<{
489
518
  limit: z.ZodOptional<z.ZodNumber>;
490
519
  }, "strip", z.ZodTypeAny, {
@@ -1,8 +1,9 @@
1
1
  import { z } from "zod";
2
- import { ACTOR_KINDS, EDGE_KINDS, ENTITY_KINDS, RECURRENCE_ANCHORS } from "../db/schema.js";
2
+ import { ACTOR_KINDS, EDGE_KINDS, ENTITY_KINDS, PROJECT_STATUSES, RECURRENCE_ANCHORS } from "../db/schema.js";
3
3
  export const EntityKindEnum = z.enum(ENTITY_KINDS);
4
4
  export const ActorKindEnum = z.enum(ACTOR_KINDS);
5
5
  export const EdgeKindEnum = z.enum(EDGE_KINDS);
6
+ export const ProjectStatusEnum = z.enum(PROJECT_STATUSES);
6
7
  export const PriorityEnum = z.enum(["urgent", "high", "medium", "low", "none"]);
7
8
  export const RecurrenceAnchorEnum = z.enum(RECURRENCE_ANCHORS);
8
9
  export const RecurrenceFrequencyEnum = z.enum(["hourly", "daily", "weekly", "monthly", "yearly"]);
@@ -73,7 +74,8 @@ export const UpdateInput = z.object({
73
74
  parentId: Uuid.nullable().optional(),
74
75
  dueAt: z.coerce.date().nullable().optional(),
75
76
  priority: PriorityEnum.optional(),
76
- pinned: z.boolean().optional()
77
+ pinned: z.boolean().optional(),
78
+ recurrenceScope: z.enum(["this", "future"]).optional()
77
79
  });
78
80
  const PositiveInterval = z.number().int().min(1).max(999);
79
81
  const RecurrenceFields = z.object({
@@ -87,7 +89,7 @@ const RecurrenceFields = z.object({
87
89
  until: z.coerce.date().nullable().optional(),
88
90
  count: z.number().int().min(1).max(10000).nullable().optional(),
89
91
  dtstart: z.coerce.date().optional(),
90
- timezone: z.string().min(1).max(80).default("UTC"),
92
+ timezone: z.string().min(1).max(80).optional(),
91
93
  allDay: z.boolean().default(true),
92
94
  anchor: RecurrenceAnchorEnum.default("scheduled")
93
95
  });
@@ -125,7 +127,8 @@ export const TasksRangeInput = z.object({
125
127
  to: z.coerce.date().nullish(),
126
128
  projectIds: z.array(Uuid).nullish(),
127
129
  includeBacklog: z.boolean().default(true),
128
- includeDone: z.boolean().default(false)
130
+ includeDone: z.boolean().default(false),
131
+ includeVirtualRecurrences: z.boolean().default(false)
129
132
  });
130
133
  export const LinkInput = z.object({
131
134
  fromId: Uuid,
@@ -144,22 +147,31 @@ const IconName = z
144
147
  .min(1)
145
148
  .max(40)
146
149
  .regex(/^[a-z0-9_-]+$/, "icon must be a lowercase identifier");
147
- export const CreateProjectInput = z.object({
150
+ export const CreateProjectInput = z
151
+ .object({
148
152
  key: z
149
153
  .string()
150
154
  .min(1)
151
155
  .max(20)
152
156
  .regex(/^[A-Z][A-Z0-9_]*$/),
153
157
  name: z.string().min(1).max(200),
158
+ status: ProjectStatusEnum.default("active"),
154
159
  color: HexColor.default("#5e6ad2"),
155
160
  icon: IconName.default("circle"),
156
161
  agentsMd: z.string().default("")
157
- });
158
- export const UpdateProjectInput = z.object({
162
+ })
163
+ .strict();
164
+ export const UpdateProjectInput = z
165
+ .object({
159
166
  name: z.string().min(1).max(200).optional(),
167
+ status: ProjectStatusEnum.optional(),
160
168
  color: HexColor.optional(),
161
169
  icon: IconName.optional(),
162
170
  agentsMd: z.string().optional()
171
+ })
172
+ .strict();
173
+ export const ListProjectsInput = z.object({
174
+ includeArchived: z.boolean().default(false)
163
175
  });
164
176
  export const CreateTokenInput = z.object({
165
177
  name: z.string().min(1).max(200)
@@ -172,6 +184,9 @@ export const UpdateEmbeddingSettingsInput = z.object({
172
184
  baseUrl: z.string().url().nullable().optional(),
173
185
  apiKey: z.string().max(1000).nullable().optional()
174
186
  });
187
+ export const UpdateWorkspaceSettingsInput = z.object({
188
+ timezone: z.string().min(1).max(80).optional()
189
+ });
175
190
  export const EmbeddingBackfillInput = z.object({
176
191
  limit: z.number().int().min(1).max(100000).optional()
177
192
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Database } from "../db/client.js";
2
+ import { type WorkspaceSettings } from "../db/schema.js";
3
+ import type { UpdateWorkspaceSettingsInput } from "./types.js";
4
+ export declare const WORKSPACE_SETTINGS_ID = "default";
5
+ export declare const DEFAULT_WORKSPACE_TIMEZONE = "UTC";
6
+ export declare function isValidTimezone(tz: string): boolean;
7
+ export declare function getWorkspaceSettings(db: Database["db"]): Promise<WorkspaceSettings>;
8
+ export declare function updateWorkspaceSettings(db: Database["db"], input: UpdateWorkspaceSettingsInput): Promise<WorkspaceSettings>;
@@ -0,0 +1,53 @@
1
+ import { eq } from "drizzle-orm";
2
+ import { workspaceSettings } from "../db/schema.js";
3
+ export const WORKSPACE_SETTINGS_ID = "default";
4
+ export const DEFAULT_WORKSPACE_TIMEZONE = "UTC";
5
+ export function isValidTimezone(tz) {
6
+ try {
7
+ new Intl.DateTimeFormat("en-US", { timeZone: tz });
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ export async function getWorkspaceSettings(db) {
15
+ const [existing] = await db
16
+ .select()
17
+ .from(workspaceSettings)
18
+ .where(eq(workspaceSettings.id, WORKSPACE_SETTINGS_ID))
19
+ .limit(1);
20
+ if (existing)
21
+ return existing;
22
+ await db
23
+ .insert(workspaceSettings)
24
+ .values({
25
+ id: WORKSPACE_SETTINGS_ID,
26
+ timezone: DEFAULT_WORKSPACE_TIMEZONE
27
+ })
28
+ .onConflictDoNothing();
29
+ const [created] = await db
30
+ .select()
31
+ .from(workspaceSettings)
32
+ .where(eq(workspaceSettings.id, WORKSPACE_SETTINGS_ID))
33
+ .limit(1);
34
+ if (!created)
35
+ throw new Error("workspace settings row missing after insert");
36
+ return created;
37
+ }
38
+ export async function updateWorkspaceSettings(db, input) {
39
+ const current = await getWorkspaceSettings(db);
40
+ const timezone = input.timezone ?? current.timezone;
41
+ if (input.timezone !== undefined && !isValidTimezone(input.timezone)) {
42
+ throw new Error(`Invalid IANA timezone: "${input.timezone}"`);
43
+ }
44
+ const [updated] = await db
45
+ .update(workspaceSettings)
46
+ .set({ timezone })
47
+ .where(eq(workspaceSettings.id, WORKSPACE_SETTINGS_ID))
48
+ .returning();
49
+ if (!updated)
50
+ throw new Error("workspace settings update returned no row");
51
+ return updated;
52
+ }
53
+ //# sourceMappingURL=workspace_settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace_settings.js","sourceRoot":"","sources":["../../src/service/workspace_settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAC;AAG5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAkB;IAElB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE;SACxB,MAAM,EAAE;SACR,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,EAAE;SACL,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC;QACN,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,0BAA0B;KACrC,CAAC;SACD,mBAAmB,EAAE,CAAC;IAEzB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;SACvB,MAAM,EAAE;SACR,IAAI,CAAC,iBAAiB,CAAC;SACvB,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAkB,EAClB,KAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACpD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;SACvB,MAAM,CAAC,iBAAiB,CAAC;SACzB,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;SACjB,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;SACtD,SAAS,EAAE,CAAC;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC"}