@noteplanco/noteplan-mcp 1.1.1

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 (155) hide show
  1. package/README.md +257 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/noteplan/embeddings.d.ts +170 -0
  7. package/dist/noteplan/embeddings.d.ts.map +1 -0
  8. package/dist/noteplan/embeddings.js +684 -0
  9. package/dist/noteplan/embeddings.js.map +1 -0
  10. package/dist/noteplan/file-reader.d.ts +77 -0
  11. package/dist/noteplan/file-reader.d.ts.map +1 -0
  12. package/dist/noteplan/file-reader.js +488 -0
  13. package/dist/noteplan/file-reader.js.map +1 -0
  14. package/dist/noteplan/file-writer.d.ts +108 -0
  15. package/dist/noteplan/file-writer.d.ts.map +1 -0
  16. package/dist/noteplan/file-writer.js +621 -0
  17. package/dist/noteplan/file-writer.js.map +1 -0
  18. package/dist/noteplan/filter-store.d.ts +28 -0
  19. package/dist/noteplan/filter-store.d.ts.map +1 -0
  20. package/dist/noteplan/filter-store.js +180 -0
  21. package/dist/noteplan/filter-store.js.map +1 -0
  22. package/dist/noteplan/frontmatter-parser.d.ts +45 -0
  23. package/dist/noteplan/frontmatter-parser.d.ts.map +1 -0
  24. package/dist/noteplan/frontmatter-parser.js +259 -0
  25. package/dist/noteplan/frontmatter-parser.js.map +1 -0
  26. package/dist/noteplan/fuzzy-search.d.ts +7 -0
  27. package/dist/noteplan/fuzzy-search.d.ts.map +1 -0
  28. package/dist/noteplan/fuzzy-search.js +66 -0
  29. package/dist/noteplan/fuzzy-search.js.map +1 -0
  30. package/dist/noteplan/markdown-parser.d.ts +87 -0
  31. package/dist/noteplan/markdown-parser.d.ts.map +1 -0
  32. package/dist/noteplan/markdown-parser.js +519 -0
  33. package/dist/noteplan/markdown-parser.js.map +1 -0
  34. package/dist/noteplan/preferences.d.ts +44 -0
  35. package/dist/noteplan/preferences.d.ts.map +1 -0
  36. package/dist/noteplan/preferences.js +156 -0
  37. package/dist/noteplan/preferences.js.map +1 -0
  38. package/dist/noteplan/ripgrep-search.d.ts +29 -0
  39. package/dist/noteplan/ripgrep-search.d.ts.map +1 -0
  40. package/dist/noteplan/ripgrep-search.js +110 -0
  41. package/dist/noteplan/ripgrep-search.js.map +1 -0
  42. package/dist/noteplan/sqlite-reader.d.ts +77 -0
  43. package/dist/noteplan/sqlite-reader.d.ts.map +1 -0
  44. package/dist/noteplan/sqlite-reader.js +605 -0
  45. package/dist/noteplan/sqlite-reader.js.map +1 -0
  46. package/dist/noteplan/sqlite-writer.d.ts +63 -0
  47. package/dist/noteplan/sqlite-writer.d.ts.map +1 -0
  48. package/dist/noteplan/sqlite-writer.js +574 -0
  49. package/dist/noteplan/sqlite-writer.js.map +1 -0
  50. package/dist/noteplan/types.d.ts +97 -0
  51. package/dist/noteplan/types.d.ts.map +1 -0
  52. package/dist/noteplan/types.js +33 -0
  53. package/dist/noteplan/types.js.map +1 -0
  54. package/dist/noteplan/unified-store.d.ts +289 -0
  55. package/dist/noteplan/unified-store.d.ts.map +1 -0
  56. package/dist/noteplan/unified-store.js +1308 -0
  57. package/dist/noteplan/unified-store.js.map +1 -0
  58. package/dist/server.d.ts +4 -0
  59. package/dist/server.d.ts.map +1 -0
  60. package/dist/server.js +2468 -0
  61. package/dist/server.js.map +1 -0
  62. package/dist/tools/calendar.d.ts +311 -0
  63. package/dist/tools/calendar.d.ts.map +1 -0
  64. package/dist/tools/calendar.js +504 -0
  65. package/dist/tools/calendar.js.map +1 -0
  66. package/dist/tools/embeddings.d.ts +244 -0
  67. package/dist/tools/embeddings.d.ts.map +1 -0
  68. package/dist/tools/embeddings.js +226 -0
  69. package/dist/tools/embeddings.js.map +1 -0
  70. package/dist/tools/events.d.ts +176 -0
  71. package/dist/tools/events.d.ts.map +1 -0
  72. package/dist/tools/events.js +326 -0
  73. package/dist/tools/events.js.map +1 -0
  74. package/dist/tools/filters.d.ts +205 -0
  75. package/dist/tools/filters.d.ts.map +1 -0
  76. package/dist/tools/filters.js +347 -0
  77. package/dist/tools/filters.js.map +1 -0
  78. package/dist/tools/memory.d.ts +6 -0
  79. package/dist/tools/memory.d.ts.map +1 -0
  80. package/dist/tools/memory.js +161 -0
  81. package/dist/tools/memory.js.map +1 -0
  82. package/dist/tools/notes.d.ts +1221 -0
  83. package/dist/tools/notes.d.ts.map +1 -0
  84. package/dist/tools/notes.js +1868 -0
  85. package/dist/tools/notes.js.map +1 -0
  86. package/dist/tools/plugins.d.ts +140 -0
  87. package/dist/tools/plugins.d.ts.map +1 -0
  88. package/dist/tools/plugins.js +782 -0
  89. package/dist/tools/plugins.js.map +1 -0
  90. package/dist/tools/reminders.d.ts +207 -0
  91. package/dist/tools/reminders.d.ts.map +1 -0
  92. package/dist/tools/reminders.js +323 -0
  93. package/dist/tools/reminders.js.map +1 -0
  94. package/dist/tools/search.d.ts +58 -0
  95. package/dist/tools/search.d.ts.map +1 -0
  96. package/dist/tools/search.js +373 -0
  97. package/dist/tools/search.js.map +1 -0
  98. package/dist/tools/spaces.d.ts +484 -0
  99. package/dist/tools/spaces.d.ts.map +1 -0
  100. package/dist/tools/spaces.js +870 -0
  101. package/dist/tools/spaces.js.map +1 -0
  102. package/dist/tools/tasks.d.ts +313 -0
  103. package/dist/tools/tasks.d.ts.map +1 -0
  104. package/dist/tools/tasks.js +690 -0
  105. package/dist/tools/tasks.js.map +1 -0
  106. package/dist/tools/themes.d.ts +91 -0
  107. package/dist/tools/themes.d.ts.map +1 -0
  108. package/dist/tools/themes.js +294 -0
  109. package/dist/tools/themes.js.map +1 -0
  110. package/dist/tools/ui.d.ts +89 -0
  111. package/dist/tools/ui.d.ts.map +1 -0
  112. package/dist/tools/ui.js +137 -0
  113. package/dist/tools/ui.js.map +1 -0
  114. package/dist/utils/applescript.d.ts +5 -0
  115. package/dist/utils/applescript.d.ts.map +1 -0
  116. package/dist/utils/applescript.js +27 -0
  117. package/dist/utils/applescript.js.map +1 -0
  118. package/dist/utils/confirmation-tokens.d.ts +19 -0
  119. package/dist/utils/confirmation-tokens.d.ts.map +1 -0
  120. package/dist/utils/confirmation-tokens.js +58 -0
  121. package/dist/utils/confirmation-tokens.js.map +1 -0
  122. package/dist/utils/date-filters.d.ts +15 -0
  123. package/dist/utils/date-filters.d.ts.map +1 -0
  124. package/dist/utils/date-filters.js +129 -0
  125. package/dist/utils/date-filters.js.map +1 -0
  126. package/dist/utils/date-utils.d.ts +113 -0
  127. package/dist/utils/date-utils.d.ts.map +1 -0
  128. package/dist/utils/date-utils.js +341 -0
  129. package/dist/utils/date-utils.js.map +1 -0
  130. package/dist/utils/folder-matcher.d.ts +14 -0
  131. package/dist/utils/folder-matcher.d.ts.map +1 -0
  132. package/dist/utils/folder-matcher.js +191 -0
  133. package/dist/utils/folder-matcher.js.map +1 -0
  134. package/dist/utils/version.d.ts +10 -0
  135. package/dist/utils/version.d.ts.map +1 -0
  136. package/dist/utils/version.js +88 -0
  137. package/dist/utils/version.js.map +1 -0
  138. package/docs/plugin-api/Calendar.md +448 -0
  139. package/docs/plugin-api/CalendarItem.md +198 -0
  140. package/docs/plugin-api/Clipboard.md +101 -0
  141. package/docs/plugin-api/CommandBar.md +251 -0
  142. package/docs/plugin-api/DataStore.md +700 -0
  143. package/docs/plugin-api/Editor.md +982 -0
  144. package/docs/plugin-api/HTMLView.md +337 -0
  145. package/docs/plugin-api/NoteObject.md +588 -0
  146. package/docs/plugin-api/NotePlan.md +398 -0
  147. package/docs/plugin-api/ParagraphObject.md +242 -0
  148. package/docs/plugin-api/RangeObject.md +56 -0
  149. package/docs/plugin-api/getting-started.md +545 -0
  150. package/docs/plugin-api/plugin-api-condensed.md +526 -0
  151. package/docs/plugin-api/plugin.json +26 -0
  152. package/docs/plugin-api/script.js +542 -0
  153. package/package.json +60 -0
  154. package/scripts/calendar-helper +0 -0
  155. package/scripts/reminders-helper +0 -0
@@ -0,0 +1,326 @@
1
+ // macOS Calendar events operations via Swift/EventKit
2
+ import { z } from 'zod';
3
+ import { execFileSync } from 'child_process';
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import { issueConfirmationToken, validateAndConsumeConfirmationToken, } from '../utils/confirmation-tokens.js';
8
+ // Get the directory of this module
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = path.dirname(__filename);
11
+ const COMPILED_HELPER = path.join(__dirname, '../../scripts/calendar-helper');
12
+ const SWIFT_HELPER = path.join(__dirname, '../../scripts/calendar-helper.swift');
13
+ function toBoundedInt(value, defaultValue, min, max) {
14
+ const numeric = typeof value === 'number' ? value : Number(value);
15
+ if (!Number.isFinite(numeric))
16
+ return defaultValue;
17
+ return Math.min(max, Math.max(min, Math.floor(numeric)));
18
+ }
19
+ /**
20
+ * Run the calendar helper (prefers compiled binary, falls back to swift interpreter)
21
+ */
22
+ function runSwiftHelper(args, timeoutMs = 15000) {
23
+ try {
24
+ let result;
25
+ // Use compiled binary if it exists
26
+ if (fs.existsSync(COMPILED_HELPER)) {
27
+ result = execFileSync(COMPILED_HELPER, args, {
28
+ encoding: 'utf-8',
29
+ stdio: ['pipe', 'pipe', 'pipe'],
30
+ timeout: timeoutMs,
31
+ }).trim();
32
+ }
33
+ else {
34
+ // Fall back to swift interpreter
35
+ result = execFileSync('swift', [SWIFT_HELPER, ...args], {
36
+ encoding: 'utf-8',
37
+ stdio: ['pipe', 'pipe', 'pipe'],
38
+ timeout: timeoutMs,
39
+ }).trim();
40
+ }
41
+ if (!result)
42
+ return null;
43
+ return JSON.parse(result);
44
+ }
45
+ catch (error) {
46
+ if (error.killed) {
47
+ throw new Error('Calendar query timed out.');
48
+ }
49
+ // Try to parse error from output
50
+ try {
51
+ const parsed = JSON.parse(error.stdout || '{}');
52
+ if (parsed.error)
53
+ throw new Error(parsed.error);
54
+ }
55
+ catch { }
56
+ throw new Error(error.stderr || error.message || 'Calendar helper failed');
57
+ }
58
+ }
59
+ // Schema definitions
60
+ export const getEventsSchema = z.object({
61
+ date: z.string().optional().describe('Date to get events for (YYYY-MM-DD, "today", "tomorrow"). Defaults to today.'),
62
+ days: z.number().min(1).max(365).optional().describe('Number of days to fetch (default: 1, max: 365)'),
63
+ calendar: z.string().optional().describe('Filter by calendar name'),
64
+ limit: z.number().min(1).max(500).optional().default(100).describe('Maximum events to return'),
65
+ offset: z.number().min(0).optional().default(0).describe('Pagination offset'),
66
+ cursor: z.string().optional().describe('Cursor token from previous page (preferred over offset)'),
67
+ });
68
+ export const createEventSchema = z.object({
69
+ title: z.string().describe('Event title'),
70
+ startDate: z.string().describe('Start date/time (YYYY-MM-DD HH:MM or YYYY-MM-DD for all-day)'),
71
+ endDate: z.string().optional().describe('End date/time (defaults to 1 hour after start, or end of day for all-day)'),
72
+ calendar: z.string().optional().describe('Calendar name (defaults to default calendar)'),
73
+ location: z.string().optional().describe('Event location'),
74
+ notes: z.string().optional().describe('Event notes'),
75
+ allDay: z.boolean().optional().describe('Whether this is an all-day event'),
76
+ });
77
+ export const updateEventSchema = z.object({
78
+ eventId: z.string().describe('Event ID (from get_events)'),
79
+ title: z.string().optional().describe('New event title'),
80
+ startDate: z.string().optional().describe('New start date/time'),
81
+ endDate: z.string().optional().describe('New end date/time'),
82
+ location: z.string().optional().describe('New location'),
83
+ notes: z.string().optional().describe('New notes'),
84
+ });
85
+ export const deleteEventSchema = z.object({
86
+ eventId: z.string().describe('Event ID to delete'),
87
+ dryRun: z
88
+ .boolean()
89
+ .optional()
90
+ .describe('Preview deletion impact without deleting the event (default: false)'),
91
+ confirmationToken: z
92
+ .string()
93
+ .optional()
94
+ .describe('Confirmation token issued by dryRun for delete execution'),
95
+ });
96
+ export const listCalendarsSchema = z.object({});
97
+ /**
98
+ * Parse flexible date input
99
+ */
100
+ function parseDate(dateStr) {
101
+ const lower = dateStr.toLowerCase();
102
+ const now = new Date();
103
+ if (lower === 'today') {
104
+ return new Date(now.getFullYear(), now.getMonth(), now.getDate());
105
+ }
106
+ if (lower === 'tomorrow') {
107
+ return new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);
108
+ }
109
+ if (lower === 'yesterday') {
110
+ return new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);
111
+ }
112
+ return new Date(dateStr);
113
+ }
114
+ /**
115
+ * Get events from Calendar app using Swift/EventKit (fast)
116
+ */
117
+ export function getEvents(params) {
118
+ try {
119
+ const input = params ?? {};
120
+ const startDate = parseDate(input.date || 'today');
121
+ const days = toBoundedInt(input.days, 1, 1, 365);
122
+ const offset = toBoundedInt(input.cursor ?? input.offset, 0, 0, Number.MAX_SAFE_INTEGER);
123
+ const limit = toBoundedInt(input.limit, 100, 1, 500);
124
+ const endDate = new Date(startDate);
125
+ endDate.setDate(endDate.getDate() + days);
126
+ // Format date as YYYY-MM-DD for Swift helper
127
+ const startStr = startDate.toISOString().split('T')[0];
128
+ const args = ['list-events', startStr, String(days)];
129
+ if (input.calendar) {
130
+ args.push(input.calendar);
131
+ }
132
+ const allEvents = runSwiftHelper(args) || [];
133
+ const events = allEvents.slice(offset, offset + limit);
134
+ const hasMore = offset + events.length < allEvents.length;
135
+ const nextCursor = hasMore ? String(offset + events.length) : null;
136
+ return {
137
+ success: true,
138
+ startDate: startStr,
139
+ endDate: endDate.toISOString().split('T')[0],
140
+ eventCount: events.length,
141
+ totalCount: allEvents.length,
142
+ offset,
143
+ limit,
144
+ hasMore,
145
+ nextCursor,
146
+ events,
147
+ };
148
+ }
149
+ catch (error) {
150
+ return {
151
+ success: false,
152
+ error: error instanceof Error ? error.message : 'Failed to get events',
153
+ };
154
+ }
155
+ }
156
+ /**
157
+ * Create a new calendar event using Swift/EventKit
158
+ */
159
+ export function createEvent(params) {
160
+ try {
161
+ const isAllDay = params.allDay || !params.startDate.includes(':');
162
+ let startDate;
163
+ let endDate;
164
+ if (isAllDay) {
165
+ startDate = new Date(params.startDate.split(' ')[0] + 'T00:00:00');
166
+ if (params.endDate) {
167
+ endDate = new Date(params.endDate.split(' ')[0] + 'T23:59:59');
168
+ }
169
+ else {
170
+ endDate = new Date(startDate);
171
+ endDate.setHours(23, 59, 59);
172
+ }
173
+ }
174
+ else {
175
+ startDate = new Date(params.startDate.replace(' ', 'T'));
176
+ if (params.endDate) {
177
+ endDate = new Date(params.endDate.replace(' ', 'T'));
178
+ }
179
+ else {
180
+ endDate = new Date(startDate.getTime() + 3600000); // 1 hour
181
+ }
182
+ }
183
+ // Format as ISO dates for Swift helper
184
+ const startStr = startDate.toISOString();
185
+ const endStr = endDate.toISOString();
186
+ const args = ['create-event', params.title, startStr, endStr];
187
+ if (params.calendar) {
188
+ args.push(params.calendar);
189
+ }
190
+ if (params.location) {
191
+ args.push(params.location);
192
+ }
193
+ if (params.notes) {
194
+ args.push(params.notes);
195
+ }
196
+ args.push(isAllDay ? 'true' : 'false');
197
+ const result = runSwiftHelper(args);
198
+ if (result?.error) {
199
+ return { success: false, error: result.error };
200
+ }
201
+ return {
202
+ success: true,
203
+ message: `Event "${params.title}" created`,
204
+ event: {
205
+ id: result?.id || '',
206
+ title: params.title,
207
+ startDate: startDate.toISOString(),
208
+ endDate: endDate.toISOString(),
209
+ },
210
+ };
211
+ }
212
+ catch (error) {
213
+ return {
214
+ success: false,
215
+ error: error instanceof Error ? error.message : 'Failed to create event',
216
+ };
217
+ }
218
+ }
219
+ /**
220
+ * Update an existing calendar event using Swift/EventKit
221
+ */
222
+ export function updateEvent(params) {
223
+ try {
224
+ // Build JSON payload for updates
225
+ const updates = {};
226
+ if (params.title)
227
+ updates.title = params.title;
228
+ if (params.startDate)
229
+ updates.startDate = new Date(params.startDate.replace(' ', 'T')).toISOString();
230
+ if (params.endDate)
231
+ updates.endDate = new Date(params.endDate.replace(' ', 'T')).toISOString();
232
+ if (params.location !== undefined)
233
+ updates.location = params.location;
234
+ if (params.notes !== undefined)
235
+ updates.notes = params.notes;
236
+ if (Object.keys(updates).length === 0) {
237
+ return { success: false, error: 'No updates provided' };
238
+ }
239
+ const args = ['update-event', params.eventId, JSON.stringify(updates)];
240
+ const result = runSwiftHelper(args);
241
+ if (result?.error) {
242
+ return { success: false, error: result.error };
243
+ }
244
+ return {
245
+ success: true,
246
+ message: 'Event updated',
247
+ };
248
+ }
249
+ catch (error) {
250
+ return {
251
+ success: false,
252
+ error: error instanceof Error ? error.message : 'Failed to update event',
253
+ };
254
+ }
255
+ }
256
+ /**
257
+ * Delete a calendar event using Swift/EventKit
258
+ */
259
+ export function deleteEvent(params) {
260
+ try {
261
+ if (params.dryRun === true) {
262
+ const token = issueConfirmationToken({
263
+ tool: 'calendar_delete_event',
264
+ target: params.eventId,
265
+ action: 'delete_event',
266
+ });
267
+ return {
268
+ success: true,
269
+ dryRun: true,
270
+ message: `Dry run: event ${params.eventId} would be deleted`,
271
+ eventId: params.eventId,
272
+ ...token,
273
+ };
274
+ }
275
+ const confirmation = validateAndConsumeConfirmationToken(params.confirmationToken, {
276
+ tool: 'calendar_delete_event',
277
+ target: params.eventId,
278
+ action: 'delete_event',
279
+ });
280
+ if (!confirmation.ok) {
281
+ const refreshHint = 'Call calendar_delete_event with dryRun=true to get a new confirmationToken.';
282
+ const message = confirmation.reason === 'missing'
283
+ ? `Confirmation token is required for calendar_delete_event. ${refreshHint}`
284
+ : confirmation.reason === 'expired'
285
+ ? `Confirmation token is expired for calendar_delete_event. ${refreshHint}`
286
+ : `Confirmation token is invalid for calendar_delete_event. ${refreshHint}`;
287
+ return {
288
+ success: false,
289
+ error: message,
290
+ };
291
+ }
292
+ const result = runSwiftHelper(['delete-event', params.eventId]);
293
+ if (result?.error) {
294
+ return { success: false, error: result.error };
295
+ }
296
+ return {
297
+ success: true,
298
+ message: 'Event deleted',
299
+ };
300
+ }
301
+ catch (error) {
302
+ return {
303
+ success: false,
304
+ error: error instanceof Error ? error.message : 'Failed to delete event',
305
+ };
306
+ }
307
+ }
308
+ /**
309
+ * List all calendars using Swift/EventKit
310
+ */
311
+ export function listCalendars(_params) {
312
+ try {
313
+ const calendars = runSwiftHelper(['list-calendars']) || [];
314
+ return {
315
+ success: true,
316
+ calendars,
317
+ };
318
+ }
319
+ catch (error) {
320
+ return {
321
+ success: false,
322
+ error: error instanceof Error ? error.message : 'Failed to list calendars',
323
+ };
324
+ }
325
+ }
326
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ import { z } from 'zod';
2
+ import { NoteType, TaskStatus } from '../noteplan/types.js';
3
+ import * as filterStore from '../noteplan/filter-store.js';
4
+ export declare const listFiltersSchema: z.ZodObject<{
5
+ query: z.ZodOptional<z.ZodString>;
6
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
+ cursor: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ limit: number;
11
+ offset: number;
12
+ query?: string | undefined;
13
+ cursor?: string | undefined;
14
+ }, {
15
+ limit?: number | undefined;
16
+ query?: string | undefined;
17
+ offset?: number | undefined;
18
+ cursor?: string | undefined;
19
+ }>;
20
+ export declare const getFilterSchema: z.ZodObject<{
21
+ name: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ name: string;
24
+ }, {
25
+ name: string;
26
+ }>;
27
+ export declare const saveFilterSchema: z.ZodObject<{
28
+ name: z.ZodString;
29
+ overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
30
+ items: z.ZodArray<z.ZodObject<{
31
+ param: z.ZodString;
32
+ value: z.ZodUnion<[z.ZodString, z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodString, "many">]>;
33
+ display: z.ZodOptional<z.ZodBoolean>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ value: string | number | boolean | string[];
36
+ param: string;
37
+ display?: boolean | undefined;
38
+ }, {
39
+ value: string | number | boolean | string[];
40
+ param: string;
41
+ display?: boolean | undefined;
42
+ }>, "many">;
43
+ }, "strip", z.ZodTypeAny, {
44
+ name: string;
45
+ items: {
46
+ value: string | number | boolean | string[];
47
+ param: string;
48
+ display?: boolean | undefined;
49
+ }[];
50
+ overwrite: boolean;
51
+ }, {
52
+ name: string;
53
+ items: {
54
+ value: string | number | boolean | string[];
55
+ param: string;
56
+ display?: boolean | undefined;
57
+ }[];
58
+ overwrite?: boolean | undefined;
59
+ }>;
60
+ export declare const renameFilterSchema: z.ZodObject<{
61
+ oldName: z.ZodString;
62
+ newName: z.ZodString;
63
+ overwrite: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ newName: string;
66
+ overwrite: boolean;
67
+ oldName: string;
68
+ }, {
69
+ newName: string;
70
+ oldName: string;
71
+ overwrite?: boolean | undefined;
72
+ }>;
73
+ export declare const getFilterTasksSchema: z.ZodObject<{
74
+ name: z.ZodString;
75
+ maxNotes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
76
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
78
+ cursor: z.ZodOptional<z.ZodString>;
79
+ space: z.ZodOptional<z.ZodString>;
80
+ folder: z.ZodOptional<z.ZodString>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ limit: number;
83
+ name: string;
84
+ offset: number;
85
+ maxNotes: number;
86
+ space?: string | undefined;
87
+ folder?: string | undefined;
88
+ cursor?: string | undefined;
89
+ }, {
90
+ name: string;
91
+ space?: string | undefined;
92
+ folder?: string | undefined;
93
+ limit?: number | undefined;
94
+ offset?: number | undefined;
95
+ cursor?: string | undefined;
96
+ maxNotes?: number | undefined;
97
+ }>;
98
+ export declare function listFilters(params: z.infer<typeof listFiltersSchema>): {
99
+ success: boolean;
100
+ count: number;
101
+ totalCount: number;
102
+ offset: number;
103
+ limit: number;
104
+ hasMore: boolean;
105
+ nextCursor: string | null;
106
+ filters: {
107
+ name: string;
108
+ createdAt: string | undefined;
109
+ modifiedAt: string | undefined;
110
+ }[];
111
+ error?: undefined;
112
+ } | {
113
+ success: boolean;
114
+ error: string;
115
+ count?: undefined;
116
+ totalCount?: undefined;
117
+ offset?: undefined;
118
+ limit?: undefined;
119
+ hasMore?: undefined;
120
+ nextCursor?: undefined;
121
+ filters?: undefined;
122
+ };
123
+ export declare function getFilter(params: z.infer<typeof getFilterSchema>): {
124
+ success: boolean;
125
+ error: string;
126
+ filter?: undefined;
127
+ } | {
128
+ success: boolean;
129
+ filter: {
130
+ name: string;
131
+ createdAt: string | undefined;
132
+ modifiedAt: string | undefined;
133
+ itemCount: number;
134
+ items: {
135
+ param: string;
136
+ value: string;
137
+ parsedValue: unknown;
138
+ display: boolean;
139
+ }[];
140
+ };
141
+ error?: undefined;
142
+ };
143
+ export declare function saveFilter(params: z.infer<typeof saveFilterSchema>): {
144
+ success: boolean;
145
+ message: string;
146
+ filter: {
147
+ name: string;
148
+ createdAt: string | undefined;
149
+ modifiedAt: string | undefined;
150
+ itemCount: number;
151
+ items: filterStore.FilterItemRecord[];
152
+ };
153
+ error?: undefined;
154
+ } | {
155
+ success: boolean;
156
+ error: string;
157
+ message?: undefined;
158
+ filter?: undefined;
159
+ };
160
+ export declare function renameFilter(params: z.infer<typeof renameFilterSchema>): {
161
+ success: boolean;
162
+ message: string;
163
+ filter: {
164
+ name: string;
165
+ createdAt: string | undefined;
166
+ modifiedAt: string | undefined;
167
+ itemCount: number;
168
+ };
169
+ error?: undefined;
170
+ } | {
171
+ success: boolean;
172
+ error: string;
173
+ message?: undefined;
174
+ filter?: undefined;
175
+ };
176
+ export declare function getFilterTasks(params: z.infer<typeof getFilterTasksSchema>): {
177
+ success: boolean;
178
+ error: string;
179
+ } | {
180
+ filter: {
181
+ name: string;
182
+ itemCount: number;
183
+ };
184
+ mappedQuery: {
185
+ query: string;
186
+ status: TaskStatus[] | undefined;
187
+ noteTypes: NoteType[] | undefined;
188
+ preferCalendar: boolean;
189
+ periodicOnly: boolean;
190
+ };
191
+ unsupportedRules: string[];
192
+ success?: undefined;
193
+ error?: undefined;
194
+ };
195
+ export declare function listFilterParameters(): {
196
+ success: boolean;
197
+ count: number;
198
+ parameters: {
199
+ param: string;
200
+ type: string;
201
+ description: string;
202
+ }[];
203
+ timeframeValues: string[];
204
+ };
205
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/tools/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AA4J3D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAE1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AAEH,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;EAkCpE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC;;;;;;;;;;;;;;;;;;;EA+BhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC;;;;;;;;;;;;;;;;EAuBlE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC;;;;;;;;;;;;;;;EAuBtE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;EA8C1E;AAED,wBAAgB,oBAAoB;;;;;;;;;EAOnC"}