engram-mcp-server 1.2.8 → 1.2.9

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 (210) hide show
  1. package/README.md +12 -1
  2. package/dist/constants.d.ts +1 -1
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +6 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/index.js +7 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/installer/ide-detector.d.ts.map +1 -1
  9. package/dist/installer/ide-detector.js +10 -6
  10. package/dist/installer/ide-detector.js.map +1 -1
  11. package/dist/installer/index.d.ts.map +1 -1
  12. package/dist/installer/index.js +79 -15
  13. package/dist/installer/index.js.map +1 -1
  14. package/package.json +6 -3
  15. package/dist/installer.d.ts +0 -2
  16. package/dist/installer.d.ts.map +0 -1
  17. package/dist/installer.js +0 -315
  18. package/dist/installer.js.map +0 -1
  19. package/dist/src/constants.d.ts +0 -21
  20. package/dist/src/constants.d.ts.map +0 -1
  21. package/dist/src/constants.js +0 -81
  22. package/dist/src/constants.js.map +0 -1
  23. package/dist/src/database.d.ts +0 -32
  24. package/dist/src/database.d.ts.map +0 -1
  25. package/dist/src/database.js +0 -143
  26. package/dist/src/database.js.map +0 -1
  27. package/dist/src/errors.d.ts +0 -40
  28. package/dist/src/errors.d.ts.map +0 -1
  29. package/dist/src/errors.js +0 -63
  30. package/dist/src/errors.js.map +0 -1
  31. package/dist/src/index.d.ts +0 -3
  32. package/dist/src/index.d.ts.map +0 -1
  33. package/dist/src/index.js +0 -89
  34. package/dist/src/index.js.map +0 -1
  35. package/dist/src/installer/config-writer.d.ts +0 -25
  36. package/dist/src/installer/config-writer.d.ts.map +0 -1
  37. package/dist/src/installer/config-writer.js +0 -86
  38. package/dist/src/installer/config-writer.js.map +0 -1
  39. package/dist/src/installer/ide-configs.d.ts +0 -19
  40. package/dist/src/installer/ide-configs.d.ts.map +0 -1
  41. package/dist/src/installer/ide-configs.js +0 -131
  42. package/dist/src/installer/ide-configs.js.map +0 -1
  43. package/dist/src/installer/ide-detector.d.ts +0 -6
  44. package/dist/src/installer/ide-detector.d.ts.map +0 -1
  45. package/dist/src/installer/ide-detector.js +0 -45
  46. package/dist/src/installer/ide-detector.js.map +0 -1
  47. package/dist/src/installer/index.d.ts +0 -2
  48. package/dist/src/installer/index.d.ts.map +0 -1
  49. package/dist/src/installer/index.js +0 -229
  50. package/dist/src/installer/index.js.map +0 -1
  51. package/dist/src/logger.d.ts +0 -10
  52. package/dist/src/logger.d.ts.map +0 -1
  53. package/dist/src/logger.js +0 -51
  54. package/dist/src/logger.js.map +0 -1
  55. package/dist/src/migrations.d.ts +0 -4
  56. package/dist/src/migrations.d.ts.map +0 -1
  57. package/dist/src/migrations.js +0 -343
  58. package/dist/src/migrations.js.map +0 -1
  59. package/dist/src/repositories/changes.repo.d.ts +0 -35
  60. package/dist/src/repositories/changes.repo.d.ts.map +0 -1
  61. package/dist/src/repositories/changes.repo.js +0 -53
  62. package/dist/src/repositories/changes.repo.js.map +0 -1
  63. package/dist/src/repositories/config.repo.d.ts +0 -11
  64. package/dist/src/repositories/config.repo.d.ts.map +0 -1
  65. package/dist/src/repositories/config.repo.js +0 -38
  66. package/dist/src/repositories/config.repo.js.map +0 -1
  67. package/dist/src/repositories/conventions.repo.d.ts +0 -15
  68. package/dist/src/repositories/conventions.repo.d.ts.map +0 -1
  69. package/dist/src/repositories/conventions.repo.js +0 -39
  70. package/dist/src/repositories/conventions.repo.js.map +0 -1
  71. package/dist/src/repositories/decisions.repo.d.ts +0 -19
  72. package/dist/src/repositories/decisions.repo.d.ts.map +0 -1
  73. package/dist/src/repositories/decisions.repo.js +0 -48
  74. package/dist/src/repositories/decisions.repo.js.map +0 -1
  75. package/dist/src/repositories/events.repo.d.ts +0 -34
  76. package/dist/src/repositories/events.repo.d.ts.map +0 -1
  77. package/dist/src/repositories/events.repo.js +0 -71
  78. package/dist/src/repositories/events.repo.js.map +0 -1
  79. package/dist/src/repositories/file-notes.repo.d.ts +0 -26
  80. package/dist/src/repositories/file-notes.repo.d.ts.map +0 -1
  81. package/dist/src/repositories/file-notes.repo.js +0 -55
  82. package/dist/src/repositories/file-notes.repo.js.map +0 -1
  83. package/dist/src/repositories/index.d.ts +0 -38
  84. package/dist/src/repositories/index.d.ts.map +0 -1
  85. package/dist/src/repositories/index.js +0 -41
  86. package/dist/src/repositories/index.js.map +0 -1
  87. package/dist/src/repositories/milestones.repo.d.ts +0 -10
  88. package/dist/src/repositories/milestones.repo.d.ts.map +0 -1
  89. package/dist/src/repositories/milestones.repo.js +0 -20
  90. package/dist/src/repositories/milestones.repo.js.map +0 -1
  91. package/dist/src/repositories/sessions.repo.d.ts +0 -27
  92. package/dist/src/repositories/sessions.repo.d.ts.map +0 -1
  93. package/dist/src/repositories/sessions.repo.js +0 -61
  94. package/dist/src/repositories/sessions.repo.js.map +0 -1
  95. package/dist/src/repositories/snapshot.repo.d.ts +0 -11
  96. package/dist/src/repositories/snapshot.repo.d.ts.map +0 -1
  97. package/dist/src/repositories/snapshot.repo.js +0 -17
  98. package/dist/src/repositories/snapshot.repo.js.map +0 -1
  99. package/dist/src/repositories/tasks.repo.d.ts +0 -40
  100. package/dist/src/repositories/tasks.repo.d.ts.map +0 -1
  101. package/dist/src/repositories/tasks.repo.js +0 -90
  102. package/dist/src/repositories/tasks.repo.js.map +0 -1
  103. package/dist/src/response.d.ts +0 -28
  104. package/dist/src/response.d.ts.map +0 -1
  105. package/dist/src/response.js +0 -38
  106. package/dist/src/response.js.map +0 -1
  107. package/dist/src/scripts/install-hooks.d.ts +0 -3
  108. package/dist/src/scripts/install-hooks.d.ts.map +0 -1
  109. package/dist/src/scripts/install-hooks.js +0 -89
  110. package/dist/src/scripts/install-hooks.js.map +0 -1
  111. package/dist/src/services/compaction.service.d.ts +0 -27
  112. package/dist/src/services/compaction.service.d.ts.map +0 -1
  113. package/dist/src/services/compaction.service.js +0 -93
  114. package/dist/src/services/compaction.service.js.map +0 -1
  115. package/dist/src/services/event-trigger.service.d.ts +0 -24
  116. package/dist/src/services/event-trigger.service.d.ts.map +0 -1
  117. package/dist/src/services/event-trigger.service.js +0 -60
  118. package/dist/src/services/event-trigger.service.js.map +0 -1
  119. package/dist/src/services/git.service.d.ts +0 -20
  120. package/dist/src/services/git.service.d.ts.map +0 -1
  121. package/dist/src/services/git.service.js +0 -88
  122. package/dist/src/services/git.service.js.map +0 -1
  123. package/dist/src/services/index.d.ts +0 -5
  124. package/dist/src/services/index.d.ts.map +0 -1
  125. package/dist/src/services/index.js +0 -8
  126. package/dist/src/services/index.js.map +0 -1
  127. package/dist/src/services/project-scan.service.d.ts +0 -19
  128. package/dist/src/services/project-scan.service.d.ts.map +0 -1
  129. package/dist/src/services/project-scan.service.js +0 -66
  130. package/dist/src/services/project-scan.service.js.map +0 -1
  131. package/dist/src/tools/backup.d.ts +0 -3
  132. package/dist/src/tools/backup.d.ts.map +0 -1
  133. package/dist/src/tools/backup.js +0 -191
  134. package/dist/src/tools/backup.js.map +0 -1
  135. package/dist/src/tools/changes.d.ts +0 -3
  136. package/dist/src/tools/changes.d.ts.map +0 -1
  137. package/dist/src/tools/changes.js +0 -97
  138. package/dist/src/tools/changes.js.map +0 -1
  139. package/dist/src/tools/compaction.d.ts +0 -3
  140. package/dist/src/tools/compaction.d.ts.map +0 -1
  141. package/dist/src/tools/compaction.js +0 -151
  142. package/dist/src/tools/compaction.js.map +0 -1
  143. package/dist/src/tools/conventions.d.ts +0 -3
  144. package/dist/src/tools/conventions.d.ts.map +0 -1
  145. package/dist/src/tools/conventions.js +0 -121
  146. package/dist/src/tools/conventions.js.map +0 -1
  147. package/dist/src/tools/decisions.d.ts +0 -3
  148. package/dist/src/tools/decisions.d.ts.map +0 -1
  149. package/dist/src/tools/decisions.js +0 -136
  150. package/dist/src/tools/decisions.js.map +0 -1
  151. package/dist/src/tools/export-import.d.ts +0 -3
  152. package/dist/src/tools/export-import.d.ts.map +0 -1
  153. package/dist/src/tools/export-import.js +0 -180
  154. package/dist/src/tools/export-import.js.map +0 -1
  155. package/dist/src/tools/file-notes.d.ts +0 -3
  156. package/dist/src/tools/file-notes.d.ts.map +0 -1
  157. package/dist/src/tools/file-notes.js +0 -104
  158. package/dist/src/tools/file-notes.js.map +0 -1
  159. package/dist/src/tools/intelligence.d.ts +0 -3
  160. package/dist/src/tools/intelligence.d.ts.map +0 -1
  161. package/dist/src/tools/intelligence.js +0 -427
  162. package/dist/src/tools/intelligence.js.map +0 -1
  163. package/dist/src/tools/milestones.d.ts +0 -3
  164. package/dist/src/tools/milestones.d.ts.map +0 -1
  165. package/dist/src/tools/milestones.js +0 -71
  166. package/dist/src/tools/milestones.js.map +0 -1
  167. package/dist/src/tools/scheduler.d.ts +0 -3
  168. package/dist/src/tools/scheduler.d.ts.map +0 -1
  169. package/dist/src/tools/scheduler.js +0 -363
  170. package/dist/src/tools/scheduler.js.map +0 -1
  171. package/dist/src/tools/sessions.d.ts +0 -3
  172. package/dist/src/tools/sessions.d.ts.map +0 -1
  173. package/dist/src/tools/sessions.js +0 -356
  174. package/dist/src/tools/sessions.js.map +0 -1
  175. package/dist/src/tools/stats.d.ts +0 -3
  176. package/dist/src/tools/stats.d.ts.map +0 -1
  177. package/dist/src/tools/stats.js +0 -63
  178. package/dist/src/tools/stats.js.map +0 -1
  179. package/dist/src/tools/tasks.d.ts +0 -3
  180. package/dist/src/tools/tasks.d.ts.map +0 -1
  181. package/dist/src/tools/tasks.js +0 -206
  182. package/dist/src/tools/tasks.js.map +0 -1
  183. package/dist/src/types.d.ts +0 -170
  184. package/dist/src/types.d.ts.map +0 -1
  185. package/dist/src/types.js +0 -5
  186. package/dist/src/types.js.map +0 -1
  187. package/dist/src/utils.d.ts +0 -58
  188. package/dist/src/utils.d.ts.map +0 -1
  189. package/dist/src/utils.js +0 -190
  190. package/dist/src/utils.js.map +0 -1
  191. package/dist/tests/helpers/test-db.d.ts +0 -12
  192. package/dist/tests/helpers/test-db.d.ts.map +0 -1
  193. package/dist/tests/helpers/test-db.js +0 -149
  194. package/dist/tests/helpers/test-db.js.map +0 -1
  195. package/dist/tests/installer/installer.test.d.ts +0 -2
  196. package/dist/tests/installer/installer.test.d.ts.map +0 -1
  197. package/dist/tests/installer/installer.test.js +0 -160
  198. package/dist/tests/installer/installer.test.js.map +0 -1
  199. package/dist/tests/repositories/repos.test.d.ts +0 -2
  200. package/dist/tests/repositories/repos.test.d.ts.map +0 -1
  201. package/dist/tests/repositories/repos.test.js +0 -220
  202. package/dist/tests/repositories/repos.test.js.map +0 -1
  203. package/dist/tools/maintenance.d.ts +0 -3
  204. package/dist/tools/maintenance.d.ts.map +0 -1
  205. package/dist/tools/maintenance.js +0 -647
  206. package/dist/tools/maintenance.js.map +0 -1
  207. package/dist/tools/memory.d.ts +0 -3
  208. package/dist/tools/memory.d.ts.map +0 -1
  209. package/dist/tools/memory.js +0 -446
  210. package/dist/tools/memory.js.map +0 -1
@@ -1,363 +0,0 @@
1
- // ============================================================================
2
- // Engram MCP Server — Scheduled Events Tools
3
- // ============================================================================
4
- import { z } from "zod";
5
- import { getDb, now, getCurrentSessionId } from "../database.js";
6
- import { TOOL_PREFIX } from "../constants.js";
7
- export function registerSchedulerTools(server) {
8
- // ─── SCHEDULE EVENT ──────────────────────────────────────────────────
9
- server.registerTool(`${TOOL_PREFIX}_schedule_event`, {
10
- title: "Schedule Event",
11
- description: `Schedule a deferred event that fires at a specified trigger. Use when a user says "do this later", "next session", "after task X is done", or "at a specific time". Events are surfaced in start_session when their trigger fires.
12
-
13
- Args:
14
- - title (string): Short, descriptive event title
15
- - description (string, optional): Detailed description of what needs to happen
16
- - trigger_type: "next_session" | "datetime" | "task_complete" | "manual"
17
- - trigger_value (string, optional): ISO datetime for 'datetime', task ID (as string) for 'task_complete'. Not needed for 'next_session' or 'manual'.
18
- - action_summary (string, optional): Brief summary for the agent to present when event triggers
19
- - action_data (string, optional): JSON string with detailed context for execution
20
- - priority: "critical" | "high" | "medium" | "low" (default: "medium")
21
- - requires_approval (boolean, optional): Whether user must approve before execution (default: true)
22
- - recurrence (string, optional): "once" | "every_session" | "daily" | "weekly" (default: null = once)
23
- - tags (array, optional): Categorization tags
24
-
25
- Returns:
26
- Event ID, trigger summary, and confirmation.`,
27
- inputSchema: {
28
- title: z.string().min(3).describe("Short event title"),
29
- description: z.string().optional().describe("Detailed description"),
30
- trigger_type: z.enum(["next_session", "datetime", "task_complete", "manual"]).describe("When the event should trigger"),
31
- trigger_value: z.string().optional().describe("ISO datetime or task ID (as string)"),
32
- action_summary: z.string().optional().describe("Brief summary for agent to present"),
33
- action_data: z.string().optional().describe("JSON context for execution"),
34
- priority: z.enum(["critical", "high", "medium", "low"]).default("medium"),
35
- requires_approval: z.boolean().default(true).describe("Whether user must approve"),
36
- recurrence: z.enum(["once", "every_session", "daily", "weekly"]).optional().describe("Recurrence pattern"),
37
- tags: z.array(z.string()).optional().describe("Tags"),
38
- },
39
- annotations: {
40
- readOnlyHint: false,
41
- destructiveHint: false,
42
- idempotentHint: false,
43
- openWorldHint: false,
44
- },
45
- }, async ({ title, description, trigger_type, trigger_value, action_summary, action_data, priority, requires_approval, recurrence, tags }) => {
46
- const db = getDb();
47
- const timestamp = now();
48
- const sessionId = getCurrentSessionId();
49
- // Validate trigger_value for specific trigger types
50
- if (trigger_type === "datetime" && !trigger_value) {
51
- return {
52
- isError: true,
53
- content: [{ type: "text", text: "trigger_value (ISO datetime) is required when trigger_type is 'datetime'." }],
54
- };
55
- }
56
- if (trigger_type === "task_complete" && !trigger_value) {
57
- return {
58
- isError: true,
59
- content: [{ type: "text", text: "trigger_value (task ID as string) is required when trigger_type is 'task_complete'." }],
60
- };
61
- }
62
- const result = db.prepare(`INSERT INTO scheduled_events (session_id, created_at, title, description, trigger_type, trigger_value, status, requires_approval, action_summary, action_data, priority, tags, recurrence)
63
- VALUES (?, ?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?)`).run(sessionId, timestamp, title, description || null, trigger_type, trigger_value || null, requires_approval ? 1 : 0, action_summary || null, action_data || null, priority, tags ? JSON.stringify(tags) : null, recurrence || null);
64
- const triggerDesc = trigger_type === "next_session" ? "next session start" :
65
- trigger_type === "datetime" ? `at/after ${trigger_value}` :
66
- trigger_type === "task_complete" ? `when task #${trigger_value} completes` :
67
- "when manually checked";
68
- return {
69
- content: [{
70
- type: "text",
71
- text: JSON.stringify({
72
- event_id: result.lastInsertRowid,
73
- title,
74
- trigger: triggerDesc,
75
- requires_approval,
76
- recurrence: recurrence || "once",
77
- message: `Event #${result.lastInsertRowid} scheduled — will trigger on ${triggerDesc}.${requires_approval ? " User approval required before execution." : ""}`,
78
- }, null, 2),
79
- }],
80
- };
81
- });
82
- // ─── GET SCHEDULED EVENTS ────────────────────────────────────────────
83
- server.registerTool(`${TOOL_PREFIX}_get_scheduled_events`, {
84
- title: "Get Scheduled Events",
85
- description: `List scheduled events. Filter by status or trigger type.
86
-
87
- Args:
88
- - status (string, optional): Filter by status — "pending", "triggered", "acknowledged", "executed", "cancelled", "snoozed"
89
- - trigger_type (string, optional): Filter by trigger type
90
- - include_done (boolean, optional): Include executed/cancelled events (default: false)
91
- - limit (number, optional): Max results (default 20)
92
-
93
- Returns:
94
- Array of events sorted by priority then creation date.`,
95
- inputSchema: {
96
- status: z.enum(["pending", "triggered", "acknowledged", "executed", "cancelled", "snoozed"]).optional(),
97
- trigger_type: z.enum(["next_session", "datetime", "task_complete", "manual"]).optional(),
98
- include_done: z.boolean().default(false),
99
- limit: z.number().int().min(1).max(100).default(20),
100
- },
101
- annotations: {
102
- readOnlyHint: true,
103
- destructiveHint: false,
104
- idempotentHint: true,
105
- openWorldHint: false,
106
- },
107
- }, async ({ status, trigger_type, include_done, limit }) => {
108
- const db = getDb();
109
- let query = "SELECT * FROM scheduled_events WHERE 1=1";
110
- const params = [];
111
- if (!include_done) {
112
- query += " AND status NOT IN ('executed', 'cancelled')";
113
- }
114
- if (status) {
115
- query += " AND status = ?";
116
- params.push(status);
117
- }
118
- if (trigger_type) {
119
- query += " AND trigger_type = ?";
120
- params.push(trigger_type);
121
- }
122
- query += ` ORDER BY
123
- CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END,
124
- created_at ASC
125
- LIMIT ?`;
126
- params.push(limit);
127
- const events = db.prepare(query).all(...params);
128
- const pendingCount = db.prepare("SELECT COUNT(*) as c FROM scheduled_events WHERE status IN ('pending', 'triggered')").get().c;
129
- return {
130
- content: [{
131
- type: "text",
132
- text: JSON.stringify({
133
- total_active: pendingCount,
134
- returned: events.length,
135
- events,
136
- }, null, 2),
137
- }],
138
- };
139
- });
140
- // ─── UPDATE SCHEDULED EVENT ──────────────────────────────────────────
141
- server.registerTool(`${TOOL_PREFIX}_update_scheduled_event`, {
142
- title: "Update Scheduled Event",
143
- description: `Update a scheduled event. Use to cancel, snooze, reschedule, or modify an event.
144
-
145
- Args:
146
- - id (number): Event ID to update
147
- - status (string, optional): New status
148
- - trigger_type (string, optional): New trigger type
149
- - trigger_value (string, optional): New trigger value
150
- - title (string, optional): New title
151
- - description (string, optional): New description
152
- - priority (string, optional): New priority
153
-
154
- Returns:
155
- Updated event.`,
156
- inputSchema: {
157
- id: z.number().int().describe("Event ID"),
158
- status: z.enum(["pending", "triggered", "acknowledged", "executed", "cancelled", "snoozed"]).optional(),
159
- trigger_type: z.enum(["next_session", "datetime", "task_complete", "manual"]).optional(),
160
- trigger_value: z.string().optional(),
161
- title: z.string().optional(),
162
- description: z.string().optional(),
163
- priority: z.enum(["critical", "high", "medium", "low"]).optional(),
164
- },
165
- annotations: {
166
- readOnlyHint: false,
167
- destructiveHint: false,
168
- idempotentHint: true,
169
- openWorldHint: false,
170
- },
171
- }, async ({ id, status, trigger_type, trigger_value, title, description, priority }) => {
172
- const db = getDb();
173
- // Check event exists
174
- const existing = db.prepare("SELECT * FROM scheduled_events WHERE id = ?").get(id);
175
- if (!existing) {
176
- return { isError: true, content: [{ type: "text", text: `Event #${id} not found.` }] };
177
- }
178
- // Build dynamic update
179
- const updates = [];
180
- const params = [];
181
- if (status !== undefined) {
182
- updates.push("status = ?");
183
- params.push(status);
184
- if (status === "acknowledged") {
185
- updates.push("acknowledged_at = ?");
186
- params.push(now());
187
- }
188
- if (status === "executed") {
189
- updates.push("acknowledged_at = COALESCE(acknowledged_at, ?)");
190
- params.push(now());
191
- }
192
- if (status === "pending") {
193
- // Resetting — clear trigger timestamps
194
- updates.push("triggered_at = NULL");
195
- updates.push("acknowledged_at = NULL");
196
- }
197
- }
198
- if (trigger_type !== undefined) {
199
- updates.push("trigger_type = ?");
200
- params.push(trigger_type);
201
- }
202
- if (trigger_value !== undefined) {
203
- updates.push("trigger_value = ?");
204
- params.push(trigger_value);
205
- }
206
- if (title !== undefined) {
207
- updates.push("title = ?");
208
- params.push(title);
209
- }
210
- if (description !== undefined) {
211
- updates.push("description = ?");
212
- params.push(description);
213
- }
214
- if (priority !== undefined) {
215
- updates.push("priority = ?");
216
- params.push(priority);
217
- }
218
- if (updates.length === 0) {
219
- return { content: [{ type: "text", text: `No changes specified for event #${id}.` }] };
220
- }
221
- params.push(id);
222
- db.prepare(`UPDATE scheduled_events SET ${updates.join(", ")} WHERE id = ?`).run(...params);
223
- const updated = db.prepare("SELECT * FROM scheduled_events WHERE id = ?").get(id);
224
- return {
225
- content: [{
226
- type: "text",
227
- text: JSON.stringify({
228
- message: `Event #${id} updated.`,
229
- event: updated,
230
- }, null, 2),
231
- }],
232
- };
233
- });
234
- // ─── ACKNOWLEDGE EVENT ───────────────────────────────────────────────
235
- server.registerTool(`${TOOL_PREFIX}_acknowledge_event`, {
236
- title: "Acknowledge Event",
237
- description: `Acknowledge a triggered event after user reviews it. Sets status to 'acknowledged' (approved) or 'cancelled' (declined). For recurring events, resets to 'pending' after acknowledgement so they fire again.
238
-
239
- Args:
240
- - id (number): Event ID
241
- - approved (boolean): Whether the user approves the event for execution
242
- - note (string, optional): User's note on the acknowledgement
243
-
244
- Returns:
245
- Confirmation with next status.`,
246
- inputSchema: {
247
- id: z.number().int().describe("Event ID"),
248
- approved: z.boolean().describe("Whether user approves execution"),
249
- note: z.string().optional().describe("User note"),
250
- },
251
- annotations: {
252
- readOnlyHint: false,
253
- destructiveHint: false,
254
- idempotentHint: true,
255
- openWorldHint: false,
256
- },
257
- }, async ({ id, approved, note }) => {
258
- const db = getDb();
259
- const event = db.prepare("SELECT * FROM scheduled_events WHERE id = ?").get(id);
260
- if (!event) {
261
- return { isError: true, content: [{ type: "text", text: `Event #${id} not found.` }] };
262
- }
263
- if (approved) {
264
- db.prepare("UPDATE scheduled_events SET status = 'acknowledged', acknowledged_at = ? WHERE id = ?").run(now(), id);
265
- // Handle recurrence: reset recurring events to pending after acknowledgement
266
- if (event.recurrence && event.recurrence !== "once") {
267
- // For recurring events, immediately clone to a new pending event
268
- const nextTriggerValue = event.trigger_type === "datetime" ? calculateNextTrigger(event.recurrence, event.trigger_value) : event.trigger_value;
269
- db.prepare(`INSERT INTO scheduled_events (session_id, created_at, title, description, trigger_type, trigger_value, status, requires_approval, action_summary, action_data, priority, tags, recurrence)
270
- VALUES (?, ?, ?, ?, ?, ?, 'pending', ?, ?, ?, ?, ?, ?)`).run(getCurrentSessionId(), now(), event.title, event.description, event.trigger_type, nextTriggerValue, event.requires_approval, event.action_summary, event.action_data, event.priority, event.tags, event.recurrence);
271
- }
272
- return {
273
- content: [{
274
- type: "text",
275
- text: JSON.stringify({
276
- event_id: id,
277
- status: "acknowledged",
278
- message: `Event #${id} approved for execution. "${event.title}"${note ? ` — Note: ${note}` : ""}${event.recurrence && event.recurrence !== "once" ? ` (recurring: ${event.recurrence} — new pending event created)` : ""}`,
279
- }, null, 2),
280
- }],
281
- };
282
- }
283
- else {
284
- db.prepare("UPDATE scheduled_events SET status = 'cancelled', acknowledged_at = ? WHERE id = ?").run(now(), id);
285
- return {
286
- content: [{
287
- type: "text",
288
- text: JSON.stringify({
289
- event_id: id,
290
- status: "cancelled",
291
- message: `Event #${id} declined and cancelled. "${event.title}"${note ? ` — Reason: ${note}` : ""}`,
292
- }, null, 2),
293
- }],
294
- };
295
- }
296
- });
297
- // ─── CHECK EVENTS (mid-session) ──────────────────────────────────────
298
- server.registerTool(`${TOOL_PREFIX}_check_events`, {
299
- title: "Check Events",
300
- description: `Check for events that have been triggered or are pending. Use this mid-session to see if any datetime triggers have fired or if there are events waiting for action. Lightweight — suitable for periodic polling.
301
-
302
- Returns:
303
- Array of triggered/pending events that need attention.`,
304
- inputSchema: {},
305
- annotations: {
306
- readOnlyHint: true,
307
- destructiveHint: false,
308
- idempotentHint: true,
309
- openWorldHint: false,
310
- },
311
- }, async () => {
312
- const db = getDb();
313
- const timestamp = now();
314
- // Auto-trigger datetime events that have passed
315
- db.prepare(`UPDATE scheduled_events SET status = 'triggered', triggered_at = ?
316
- WHERE status = 'pending' AND trigger_type = 'datetime' AND trigger_value <= ?`).run(timestamp, timestamp);
317
- // Fetch all events needing attention
318
- const events = db.prepare(`SELECT * FROM scheduled_events
319
- WHERE status IN ('triggered', 'pending')
320
- ORDER BY
321
- CASE status WHEN 'triggered' THEN 0 WHEN 'pending' THEN 1 END,
322
- CASE priority WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 END
323
- LIMIT 20`).all();
324
- const triggered = events.filter(e => e.status === "triggered");
325
- const pending = events.filter(e => e.status === "pending");
326
- return {
327
- content: [{
328
- type: "text",
329
- text: JSON.stringify({
330
- triggered_count: triggered.length,
331
- pending_count: pending.length,
332
- triggered_events: triggered,
333
- pending_events: pending,
334
- message: triggered.length > 0
335
- ? `${triggered.length} event(s) triggered and awaiting action.`
336
- : "No events triggered. All clear.",
337
- }, null, 2),
338
- }],
339
- };
340
- });
341
- }
342
- // ─── Helpers ────────────────────────────────────────────────────────────────
343
- /**
344
- * Calculate the next trigger datetime for recurring events.
345
- */
346
- function calculateNextTrigger(recurrence, currentValue) {
347
- const base = currentValue ? new Date(currentValue) : new Date();
348
- switch (recurrence) {
349
- case "daily":
350
- base.setDate(base.getDate() + 1);
351
- break;
352
- case "weekly":
353
- base.setDate(base.getDate() + 7);
354
- break;
355
- case "every_session":
356
- // No datetime shift — fires on next session
357
- return currentValue || new Date().toISOString();
358
- default:
359
- break;
360
- }
361
- return base.toISOString();
362
- }
363
- //# sourceMappingURL=scheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/tools/scheduler.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare function registerSessionTools(server: McpServer): void;
3
- //# sourceMappingURL=sessions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAga5D"}