agentrem 1.0.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.
@@ -0,0 +1,500 @@
1
+ import { z } from 'zod';
2
+ import { getDb } from '../db.js';
3
+ import { coreAdd, coreCheck, coreList, coreSearch, coreComplete, coreSnooze, coreEdit, coreDelete, coreStats, coreGc, coreHistory, coreUndo, coreExport, coreImport, } from '../core.js';
4
+ import { PRIORITY_LABELS } from '../types.js';
5
+ export function registerTools(server) {
6
+ // ── add_reminder ──────────────────────────────────────────────────────
7
+ server.tool('add_reminder', 'Create a new reminder with priority, triggers, and scheduling', {
8
+ content: z.string().describe('Reminder text'),
9
+ due: z.string().optional().describe('Due datetime (relative or ISO)'),
10
+ trigger: z.enum(['time', 'keyword', 'condition', 'session', 'heartbeat', 'manual']).default('time'),
11
+ priority: z.number().min(1).max(5).default(3),
12
+ tags: z.string().optional().describe('Comma-separated tags'),
13
+ context: z.string().optional(),
14
+ category: z.string().optional(),
15
+ keywords: z.string().optional().describe('Comma-separated keywords for keyword trigger'),
16
+ match: z.enum(['any', 'all', 'regex']).default('any'),
17
+ check_command: z.string().optional().describe('Shell command for condition trigger'),
18
+ expect: z.string().optional().describe('Expected output for condition trigger'),
19
+ decay: z.string().optional().describe('Auto-expire datetime'),
20
+ max_fires: z.number().optional(),
21
+ recur: z.string().optional().describe('Recurrence: 1d, 2w, 1m'),
22
+ agent: z.string().default('main'),
23
+ depends_on: z.string().optional(),
24
+ source: z.enum(['agent', 'user', 'system']).default('agent'),
25
+ }, async (params) => {
26
+ const db = getDb();
27
+ try {
28
+ const rem = coreAdd(db, {
29
+ content: params.content,
30
+ due: params.due,
31
+ trigger: params.trigger,
32
+ priority: params.priority,
33
+ tags: params.tags,
34
+ context: params.context,
35
+ category: params.category,
36
+ keywords: params.keywords,
37
+ match: params.match,
38
+ check: params.check_command,
39
+ expect: params.expect,
40
+ decay: params.decay,
41
+ maxFires: params.max_fires,
42
+ recur: params.recur,
43
+ agent: params.agent,
44
+ dependsOn: params.depends_on,
45
+ source: params.source,
46
+ });
47
+ return {
48
+ content: [{
49
+ type: 'text',
50
+ text: JSON.stringify({
51
+ id: rem.id,
52
+ id_short: rem.id.slice(0, 8),
53
+ content: rem.content,
54
+ trigger_type: rem.trigger_type,
55
+ trigger_at: rem.trigger_at,
56
+ priority: rem.priority,
57
+ priority_label: PRIORITY_LABELS[rem.priority],
58
+ status: rem.status,
59
+ created_at: rem.created_at,
60
+ }),
61
+ }],
62
+ };
63
+ }
64
+ catch (e) {
65
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
66
+ }
67
+ finally {
68
+ db.close();
69
+ }
70
+ });
71
+ // ── check_reminders ───────────────────────────────────────────────────
72
+ server.tool('check_reminders', 'Check for triggered reminders. Returns due/matched reminders within token budget', {
73
+ text: z.string().optional().describe('Message text for keyword matching'),
74
+ trigger_types: z.string().optional().describe('Comma-separated trigger types'),
75
+ budget: z.number().default(800),
76
+ agent: z.string().default('main'),
77
+ escalate: z.boolean().default(false),
78
+ dry_run: z.boolean().default(false),
79
+ }, async (params) => {
80
+ const db = getDb();
81
+ try {
82
+ const result = coreCheck(db, {
83
+ text: params.text,
84
+ type: params.trigger_types,
85
+ budget: params.budget,
86
+ agent: params.agent,
87
+ escalate: params.escalate,
88
+ dryRun: params.dry_run,
89
+ });
90
+ return {
91
+ content: [{
92
+ type: 'text',
93
+ text: JSON.stringify({
94
+ triggered_count: result.totalTriggered,
95
+ included_count: result.included.length,
96
+ overflow_count: Object.values(result.overflowCounts).reduce((a, b) => a + b, 0),
97
+ reminders: result.included.map((r) => ({
98
+ id: r.id,
99
+ id_short: r.id.slice(0, 8),
100
+ content: r.content,
101
+ context: r.context,
102
+ trigger_type: r.trigger_type,
103
+ trigger_at: r.trigger_at,
104
+ priority: r.priority,
105
+ priority_label: PRIORITY_LABELS[r.priority],
106
+ fire_count: r.fire_count,
107
+ tags: r.tags,
108
+ })),
109
+ overflow: {
110
+ high: result.overflowCounts[2] || 0,
111
+ normal: result.overflowCounts[3] || 0,
112
+ low: result.overflowCounts[4] || 0,
113
+ },
114
+ }),
115
+ }],
116
+ };
117
+ }
118
+ catch (e) {
119
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
120
+ }
121
+ finally {
122
+ db.close();
123
+ }
124
+ });
125
+ // ── list_reminders ────────────────────────────────────────────────────
126
+ server.tool('list_reminders', 'List reminders with optional filters', {
127
+ status: z.string().optional(),
128
+ priority: z.string().optional(),
129
+ tag: z.string().optional(),
130
+ trigger: z.string().optional(),
131
+ due: z.string().optional(),
132
+ category: z.string().optional(),
133
+ agent: z.string().default('main'),
134
+ limit: z.number().default(20),
135
+ show_all: z.boolean().default(false),
136
+ }, async (params) => {
137
+ const db = getDb();
138
+ try {
139
+ const rows = coreList(db, {
140
+ status: params.status,
141
+ priority: params.priority,
142
+ tag: params.tag,
143
+ trigger: params.trigger,
144
+ due: params.due,
145
+ category: params.category,
146
+ agent: params.agent,
147
+ limit: params.limit,
148
+ all: params.show_all,
149
+ });
150
+ return {
151
+ content: [{
152
+ type: 'text',
153
+ text: JSON.stringify({
154
+ count: rows.length,
155
+ reminders: rows.map((r) => ({
156
+ id: r.id,
157
+ id_short: r.id.slice(0, 8),
158
+ content: r.content,
159
+ priority: r.priority,
160
+ priority_label: PRIORITY_LABELS[r.priority],
161
+ status: r.status,
162
+ trigger_type: r.trigger_type,
163
+ trigger_at: r.trigger_at,
164
+ tags: r.tags,
165
+ category: r.category,
166
+ fire_count: r.fire_count,
167
+ created_at: r.created_at,
168
+ updated_at: r.updated_at,
169
+ })),
170
+ }),
171
+ }],
172
+ };
173
+ }
174
+ finally {
175
+ db.close();
176
+ }
177
+ });
178
+ // ── search_reminders ──────────────────────────────────────────────────
179
+ server.tool('search_reminders', 'Full-text search across reminder content, context, tags, and notes', {
180
+ query: z.string(),
181
+ status: z.string().default('active'),
182
+ limit: z.number().default(10),
183
+ }, async (params) => {
184
+ const db = getDb();
185
+ try {
186
+ const rows = coreSearch(db, {
187
+ query: params.query,
188
+ status: params.status,
189
+ limit: params.limit,
190
+ });
191
+ return {
192
+ content: [{
193
+ type: 'text',
194
+ text: JSON.stringify({
195
+ query: params.query,
196
+ count: rows.length,
197
+ reminders: rows.map((r) => ({
198
+ id: r.id,
199
+ id_short: r.id.slice(0, 8),
200
+ content: r.content,
201
+ priority: r.priority,
202
+ tags: r.tags,
203
+ })),
204
+ }),
205
+ }],
206
+ };
207
+ }
208
+ finally {
209
+ db.close();
210
+ }
211
+ });
212
+ // ── complete_reminder ─────────────────────────────────────────────────
213
+ server.tool('complete_reminder', 'Complete a reminder. Handles recurrence automatically', {
214
+ id: z.string(),
215
+ notes: z.string().optional(),
216
+ }, async (params) => {
217
+ const db = getDb();
218
+ try {
219
+ const result = coreComplete(db, params.id, params.notes);
220
+ return {
221
+ content: [{
222
+ type: 'text',
223
+ text: JSON.stringify({
224
+ completed: {
225
+ id: result.completed.id,
226
+ id_short: result.completed.id.slice(0, 8),
227
+ content: result.completed.content,
228
+ },
229
+ next_recurrence: result.nextRecurrence
230
+ ? {
231
+ id: result.nextRecurrence.id,
232
+ id_short: result.nextRecurrence.id.slice(0, 8),
233
+ trigger_at: result.nextRecurrence.trigger_at,
234
+ }
235
+ : null,
236
+ }),
237
+ }],
238
+ };
239
+ }
240
+ catch (e) {
241
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
242
+ }
243
+ finally {
244
+ db.close();
245
+ }
246
+ });
247
+ // ── snooze_reminder ───────────────────────────────────────────────────
248
+ server.tool('snooze_reminder', 'Snooze a reminder until a specific time or for a duration', {
249
+ id: z.string(),
250
+ until: z.string().optional(),
251
+ duration: z.string().optional(),
252
+ }, async (params) => {
253
+ const db = getDb();
254
+ try {
255
+ const rem = coreSnooze(db, params.id, params.until, params.duration);
256
+ return {
257
+ content: [{
258
+ type: 'text',
259
+ text: JSON.stringify({
260
+ id: rem.id.slice(0, 8),
261
+ content: rem.content,
262
+ snoozed_until: rem.snoozed_until,
263
+ }),
264
+ }],
265
+ };
266
+ }
267
+ catch (e) {
268
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
269
+ }
270
+ finally {
271
+ db.close();
272
+ }
273
+ });
274
+ // ── edit_reminder ─────────────────────────────────────────────────────
275
+ server.tool('edit_reminder', 'Edit one or more fields of an existing reminder', {
276
+ id: z.string(),
277
+ content: z.string().optional(),
278
+ context: z.string().optional(),
279
+ priority: z.number().min(1).max(5).optional(),
280
+ due: z.string().optional(),
281
+ tags: z.string().optional(),
282
+ add_tags: z.string().optional(),
283
+ remove_tags: z.string().optional(),
284
+ category: z.string().optional(),
285
+ decay: z.string().optional(),
286
+ max_fires: z.number().optional(),
287
+ keywords: z.string().optional(),
288
+ agent: z.string().optional(),
289
+ }, async (params) => {
290
+ const db = getDb();
291
+ try {
292
+ const rem = coreEdit(db, params.id, {
293
+ content: params.content,
294
+ context: params.context,
295
+ priority: params.priority,
296
+ due: params.due,
297
+ tags: params.tags,
298
+ addTags: params.add_tags,
299
+ removeTags: params.remove_tags,
300
+ category: params.category,
301
+ decay: params.decay,
302
+ maxFires: params.max_fires,
303
+ keywords: params.keywords,
304
+ agent: params.agent,
305
+ });
306
+ return {
307
+ content: [{
308
+ type: 'text',
309
+ text: JSON.stringify({
310
+ id: rem.id.slice(0, 8),
311
+ reminder: rem,
312
+ }),
313
+ }],
314
+ };
315
+ }
316
+ catch (e) {
317
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
318
+ }
319
+ finally {
320
+ db.close();
321
+ }
322
+ });
323
+ // ── delete_reminder ───────────────────────────────────────────────────
324
+ server.tool('delete_reminder', 'Delete a reminder. Defaults to soft-delete (recoverable via undo)', {
325
+ id: z.string().optional(),
326
+ permanent: z.boolean().default(false),
327
+ status: z.string().optional(),
328
+ older_than: z.number().optional(),
329
+ }, async (params) => {
330
+ const db = getDb();
331
+ try {
332
+ const result = coreDelete(db, {
333
+ id: params.id,
334
+ permanent: params.permanent,
335
+ status: params.status,
336
+ olderThan: params.older_than?.toString(),
337
+ });
338
+ return {
339
+ content: [{
340
+ type: 'text',
341
+ text: JSON.stringify({
342
+ deleted_count: result.count,
343
+ permanent: result.permanent,
344
+ }),
345
+ }],
346
+ };
347
+ }
348
+ catch (e) {
349
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
350
+ }
351
+ finally {
352
+ db.close();
353
+ }
354
+ });
355
+ // ── get_stats ─────────────────────────────────────────────────────────
356
+ server.tool('get_stats', 'Get reminder statistics: counts by priority, trigger type, overdue, etc.', {}, async () => {
357
+ const db = getDb();
358
+ try {
359
+ const s = coreStats(db);
360
+ return {
361
+ content: [{
362
+ type: 'text',
363
+ text: JSON.stringify({
364
+ active: s.totalActive,
365
+ by_priority: Object.fromEntries(s.byPriority.map((p) => [p.label, p.count])),
366
+ overdue: s.overdue,
367
+ snoozed: s.snoozed,
368
+ completed_this_week: s.completedWeek,
369
+ expired: s.expired,
370
+ by_trigger: Object.fromEntries(s.byTrigger.map((t) => [t.type, t.count])),
371
+ next_due: s.nextDue,
372
+ db_size_kb: Math.round(s.dbSizeBytes / 1024),
373
+ }),
374
+ }],
375
+ };
376
+ }
377
+ finally {
378
+ db.close();
379
+ }
380
+ });
381
+ // ── get_history ───────────────────────────────────────────────────────
382
+ server.tool('get_history', 'View the audit trail of reminder changes', {
383
+ id: z.string().optional(),
384
+ limit: z.number().default(20),
385
+ }, async (params) => {
386
+ const db = getDb();
387
+ try {
388
+ const entries = coreHistory(db, params.id, params.limit);
389
+ return {
390
+ content: [{
391
+ type: 'text',
392
+ text: JSON.stringify({
393
+ count: entries.length,
394
+ entries: entries.map((e) => ({
395
+ history_id: e.id,
396
+ reminder_id: e.reminder_id,
397
+ reminder_id_short: e.reminder_id.slice(0, 8),
398
+ action: e.action,
399
+ timestamp: e.timestamp,
400
+ source: e.source,
401
+ })),
402
+ }),
403
+ }],
404
+ };
405
+ }
406
+ finally {
407
+ db.close();
408
+ }
409
+ });
410
+ // ── undo_change ───────────────────────────────────────────────────────
411
+ server.tool('undo_change', 'Undo a specific change by reverting to the previous state', {
412
+ history_id: z.number(),
413
+ }, async (params) => {
414
+ const db = getDb();
415
+ try {
416
+ coreUndo(db, params.history_id);
417
+ return {
418
+ content: [{
419
+ type: 'text',
420
+ text: JSON.stringify({ reverted_history_id: params.history_id }),
421
+ }],
422
+ };
423
+ }
424
+ catch (e) {
425
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
426
+ }
427
+ finally {
428
+ db.close();
429
+ }
430
+ });
431
+ // ── garbage_collect ───────────────────────────────────────────────────
432
+ server.tool('garbage_collect', 'Remove old completed/expired/deleted reminders and vacuum the database', {
433
+ older_than: z.number().default(30),
434
+ dry_run: z.boolean().default(false),
435
+ }, async (params) => {
436
+ const db = getDb();
437
+ try {
438
+ const result = coreGc(db, params.older_than, params.dry_run);
439
+ return {
440
+ content: [{
441
+ type: 'text',
442
+ text: JSON.stringify({
443
+ removed_count: result.count,
444
+ dry_run: params.dry_run,
445
+ }),
446
+ }],
447
+ };
448
+ }
449
+ finally {
450
+ db.close();
451
+ }
452
+ });
453
+ // ── export_reminders ──────────────────────────────────────────────────
454
+ server.tool('export_reminders', 'Export reminders as JSON', {
455
+ status: z.string().optional(),
456
+ }, async (params) => {
457
+ const db = getDb();
458
+ try {
459
+ const data = coreExport(db, params.status);
460
+ return {
461
+ content: [{
462
+ type: 'text',
463
+ text: JSON.stringify(data),
464
+ }],
465
+ };
466
+ }
467
+ finally {
468
+ db.close();
469
+ }
470
+ });
471
+ // ── import_reminders ──────────────────────────────────────────────────
472
+ server.tool('import_reminders', 'Import reminders from JSON data', {
473
+ data: z.string().describe('JSON string of export data'),
474
+ merge: z.boolean().default(false),
475
+ replace: z.boolean().default(false),
476
+ }, async (params) => {
477
+ const db = getDb();
478
+ try {
479
+ const data = JSON.parse(params.data);
480
+ const result = coreImport(db, data, params.merge, params.replace);
481
+ return {
482
+ content: [{
483
+ type: 'text',
484
+ text: JSON.stringify({
485
+ imported: result.imported,
486
+ skipped: result.skipped,
487
+ history_imported: result.historyImported,
488
+ }),
489
+ }],
490
+ };
491
+ }
492
+ catch (e) {
493
+ return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
494
+ }
495
+ finally {
496
+ db.close();
497
+ }
498
+ });
499
+ }
500
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EACL,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,GAEX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+DAA+D,EAC/D;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACrE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACnG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACxF,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACrD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7D,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,EAAE;gBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,aAAa;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,YAAY,EAAE,GAAG,CAAC,YAAY;4BAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,cAAc,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;4BAC7C,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,UAAU,EAAE,GAAG,CAAC,UAAU;yBAC3B,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,kFAAkF,EAClF;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QACzE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,aAAa;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,eAAe,EAAE,MAAM,CAAC,cAAc;4BACtC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;4BACtC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC/E,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCACrC,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,YAAY,EAAE,CAAC,CAAC,YAAY;gCAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;gCAC3C,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,IAAI,EAAE,CAAC,CAAC,IAAI;6BACb,CAAC,CAAC;4BACH,QAAQ,EAAE;gCACR,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;gCACnC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;gCACrC,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;6BACnC;yBACF,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,sCAAsC,EACtC;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACrC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE;gBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,EAAE,MAAM,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,IAAI,CAAC,MAAM;4BAClB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;gCAC3C,MAAM,EAAE,CAAC,CAAC,MAAM;gCAChB,YAAY,EAAE,CAAC,CAAC,YAAY;gCAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,UAAU,EAAE,CAAC,CAAC,UAAU;6BACzB,CAAC,CAAC;yBACJ,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,oEAAoE,EACpE;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,KAAK,EAAE,IAAI,CAAC,MAAM;4BAClB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAC1B,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,IAAI,EAAE,CAAC,CAAC,IAAI;6BACb,CAAC,CAAC;yBACJ,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,uDAAuD,EACvD;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,SAAS,EAAE;gCACT,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;gCACvB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gCACzC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;6BAClC;4BACD,eAAe,EAAE,MAAM,CAAC,cAAc;gCACpC,CAAC,CAAC;oCACE,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE;oCAC5B,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oCAC9C,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU;iCAC7C;gCACH,CAAC,CAAC,IAAI;yBACT,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,2DAA2D,EAC3D;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtB,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,aAAa,EAAE,GAAG,CAAC,aAAa;yBACjC,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,eAAe,EACf,iDAAiD,EACjD;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBAClC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtB,QAAQ,EAAE,GAAG;yBACd,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mEAAmE,EACnE;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE;gBAC5B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,aAAa,EAAE,MAAM,CAAC,KAAK;4BAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC5B,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,WAAW,EACX,0EAA0E,EAC1E,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,CAAC,CAAC,WAAW;4BACrB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC5E,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,mBAAmB,EAAE,CAAC,CAAC,aAAa;4BACpC,OAAO,EAAE,CAAC,CAAC,OAAO;4BAClB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;4BACzE,QAAQ,EAAE,CAAC,CAAC,OAAO;4BACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;yBAC7C,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,0CAA0C,EAC1C;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,OAAO,CAAC,MAAM;4BACrB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAC3B,UAAU,EAAE,CAAC,CAAC,EAAE;gCAChB,WAAW,EAAE,CAAC,CAAC,WAAW;gCAC1B,iBAAiB,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gCAC5C,MAAM,EAAE,CAAC,CAAC,MAAM;gCAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gCACtB,MAAM,EAAE,CAAC,CAAC,MAAM;6BACjB,CAAC,CAAC;yBACJ,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,2DAA2D,EAC3D;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;qBACjE,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,wEAAwE,EACxE;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,aAAa,EAAE,MAAM,CAAC,KAAK;4BAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0BAA0B,EAC1B;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;qBAC3B,CAAC;aACH,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,iCAAiC,EACjC;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,gBAAgB,EAAE,MAAM,CAAC,eAAe;yBACzC,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAW,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzG,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,64 @@
1
+ export declare const SCHEMA_VERSION = 1;
2
+ export declare const VERSION = "0.1.0";
3
+ export declare const PRIORITY_LABELS: Record<number, string>;
4
+ export declare const PRIORITY_COLORS: Record<number, string>;
5
+ export declare const VALID_TRIGGERS: Set<string>;
6
+ export declare const VALID_STATUSES: Set<string>;
7
+ export declare const VALID_SOURCES: Set<string>;
8
+ export type TriggerType = 'time' | 'keyword' | 'condition' | 'session' | 'heartbeat' | 'manual';
9
+ export type ReminderStatus = 'active' | 'snoozed' | 'completed' | 'expired' | 'failed' | 'deleted';
10
+ export type Source = 'agent' | 'user' | 'system';
11
+ export interface Reminder {
12
+ id: string;
13
+ content: string;
14
+ context: string | null;
15
+ trigger_type: TriggerType;
16
+ trigger_at: string | null;
17
+ trigger_config: string | null;
18
+ priority: number;
19
+ tags: string | null;
20
+ category: string | null;
21
+ status: ReminderStatus;
22
+ snoozed_until: string | null;
23
+ decay_at: string | null;
24
+ escalation: string | null;
25
+ fire_count: number;
26
+ last_fired: string | null;
27
+ max_fires: number | null;
28
+ recur_rule: string | null;
29
+ recur_parent_id: string | null;
30
+ depends_on: string | null;
31
+ related_ids: string | null;
32
+ source: string;
33
+ agent: string;
34
+ created_at: string;
35
+ updated_at: string;
36
+ completed_at: string | null;
37
+ notes: string | null;
38
+ }
39
+ export interface HistoryEntry {
40
+ id: number;
41
+ reminder_id: string;
42
+ action: string;
43
+ old_data: string | null;
44
+ new_data: string | null;
45
+ timestamp: string;
46
+ source: string | null;
47
+ }
48
+ export interface KeywordConfig {
49
+ keywords: string[];
50
+ match: 'any' | 'all' | 'regex';
51
+ }
52
+ export interface ConditionConfig {
53
+ check: string;
54
+ expect: string;
55
+ }
56
+ export interface RecurRule {
57
+ interval: number;
58
+ unit: 'd' | 'w' | 'm';
59
+ }
60
+ export declare class AgentremError extends Error {
61
+ exitCode: number;
62
+ constructor(message: string, exitCode?: number);
63
+ }
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMlD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMlD,CAAC;AAEF,eAAO,MAAM,cAAc,aAOzB,CAAC;AAEH,eAAO,MAAM,cAAc,aAOzB,CAAC;AAEH,eAAO,MAAM,aAAa,aAAuC,CAAC;AAElE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACvB;AAED,qBAAa,aAAc,SAAQ,KAAK;IAG7B,QAAQ,EAAE,MAAM;gBADvB,OAAO,EAAE,MAAM,EACR,QAAQ,GAAE,MAAU;CAK9B"}
package/dist/types.js ADDED
@@ -0,0 +1,43 @@
1
+ // ── Types ──────────────────────────────────────────────────────────────────
2
+ export const SCHEMA_VERSION = 1;
3
+ export const VERSION = '0.1.0';
4
+ export const PRIORITY_LABELS = {
5
+ 1: '🔴 Critical',
6
+ 2: '🟡 High',
7
+ 3: '🔵 Normal',
8
+ 4: '⚪ Low',
9
+ 5: '💤 Someday',
10
+ };
11
+ export const PRIORITY_COLORS = {
12
+ 1: '🔴',
13
+ 2: '🟡',
14
+ 3: '🔵',
15
+ 4: '⚪',
16
+ 5: '💤',
17
+ };
18
+ export const VALID_TRIGGERS = new Set([
19
+ 'time',
20
+ 'keyword',
21
+ 'condition',
22
+ 'session',
23
+ 'heartbeat',
24
+ 'manual',
25
+ ]);
26
+ export const VALID_STATUSES = new Set([
27
+ 'active',
28
+ 'snoozed',
29
+ 'completed',
30
+ 'expired',
31
+ 'failed',
32
+ 'deleted',
33
+ ]);
34
+ export const VALID_SOURCES = new Set(['agent', 'user', 'system']);
35
+ export class AgentremError extends Error {
36
+ exitCode;
37
+ constructor(message, exitCode = 2) {
38
+ super(message);
39
+ this.exitCode = exitCode;
40
+ this.name = 'AgentremError';
41
+ }
42
+ }
43
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,YAAY;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,IAAI;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACpC,MAAM;IACN,SAAS;IACT,WAAW;IACX,SAAS;IACT,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACpC,QAAQ;IACR,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AA0ElE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IAFT,YACE,OAAe,EACR,WAAmB,CAAC;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,aAAQ,GAAR,QAAQ,CAAY;QAG3B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}