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.
- package/README.md +12 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/ide-detector.d.ts.map +1 -1
- package/dist/installer/ide-detector.js +10 -6
- package/dist/installer/ide-detector.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +79 -15
- package/dist/installer/index.js.map +1 -1
- package/package.json +6 -3
- package/dist/installer.d.ts +0 -2
- package/dist/installer.d.ts.map +0 -1
- package/dist/installer.js +0 -315
- package/dist/installer.js.map +0 -1
- package/dist/src/constants.d.ts +0 -21
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -81
- package/dist/src/constants.js.map +0 -1
- package/dist/src/database.d.ts +0 -32
- package/dist/src/database.d.ts.map +0 -1
- package/dist/src/database.js +0 -143
- package/dist/src/database.js.map +0 -1
- package/dist/src/errors.d.ts +0 -40
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -63
- package/dist/src/errors.js.map +0 -1
- package/dist/src/index.d.ts +0 -3
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -89
- package/dist/src/index.js.map +0 -1
- package/dist/src/installer/config-writer.d.ts +0 -25
- package/dist/src/installer/config-writer.d.ts.map +0 -1
- package/dist/src/installer/config-writer.js +0 -86
- package/dist/src/installer/config-writer.js.map +0 -1
- package/dist/src/installer/ide-configs.d.ts +0 -19
- package/dist/src/installer/ide-configs.d.ts.map +0 -1
- package/dist/src/installer/ide-configs.js +0 -131
- package/dist/src/installer/ide-configs.js.map +0 -1
- package/dist/src/installer/ide-detector.d.ts +0 -6
- package/dist/src/installer/ide-detector.d.ts.map +0 -1
- package/dist/src/installer/ide-detector.js +0 -45
- package/dist/src/installer/ide-detector.js.map +0 -1
- package/dist/src/installer/index.d.ts +0 -2
- package/dist/src/installer/index.d.ts.map +0 -1
- package/dist/src/installer/index.js +0 -229
- package/dist/src/installer/index.js.map +0 -1
- package/dist/src/logger.d.ts +0 -10
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -51
- package/dist/src/logger.js.map +0 -1
- package/dist/src/migrations.d.ts +0 -4
- package/dist/src/migrations.d.ts.map +0 -1
- package/dist/src/migrations.js +0 -343
- package/dist/src/migrations.js.map +0 -1
- package/dist/src/repositories/changes.repo.d.ts +0 -35
- package/dist/src/repositories/changes.repo.d.ts.map +0 -1
- package/dist/src/repositories/changes.repo.js +0 -53
- package/dist/src/repositories/changes.repo.js.map +0 -1
- package/dist/src/repositories/config.repo.d.ts +0 -11
- package/dist/src/repositories/config.repo.d.ts.map +0 -1
- package/dist/src/repositories/config.repo.js +0 -38
- package/dist/src/repositories/config.repo.js.map +0 -1
- package/dist/src/repositories/conventions.repo.d.ts +0 -15
- package/dist/src/repositories/conventions.repo.d.ts.map +0 -1
- package/dist/src/repositories/conventions.repo.js +0 -39
- package/dist/src/repositories/conventions.repo.js.map +0 -1
- package/dist/src/repositories/decisions.repo.d.ts +0 -19
- package/dist/src/repositories/decisions.repo.d.ts.map +0 -1
- package/dist/src/repositories/decisions.repo.js +0 -48
- package/dist/src/repositories/decisions.repo.js.map +0 -1
- package/dist/src/repositories/events.repo.d.ts +0 -34
- package/dist/src/repositories/events.repo.d.ts.map +0 -1
- package/dist/src/repositories/events.repo.js +0 -71
- package/dist/src/repositories/events.repo.js.map +0 -1
- package/dist/src/repositories/file-notes.repo.d.ts +0 -26
- package/dist/src/repositories/file-notes.repo.d.ts.map +0 -1
- package/dist/src/repositories/file-notes.repo.js +0 -55
- package/dist/src/repositories/file-notes.repo.js.map +0 -1
- package/dist/src/repositories/index.d.ts +0 -38
- package/dist/src/repositories/index.d.ts.map +0 -1
- package/dist/src/repositories/index.js +0 -41
- package/dist/src/repositories/index.js.map +0 -1
- package/dist/src/repositories/milestones.repo.d.ts +0 -10
- package/dist/src/repositories/milestones.repo.d.ts.map +0 -1
- package/dist/src/repositories/milestones.repo.js +0 -20
- package/dist/src/repositories/milestones.repo.js.map +0 -1
- package/dist/src/repositories/sessions.repo.d.ts +0 -27
- package/dist/src/repositories/sessions.repo.d.ts.map +0 -1
- package/dist/src/repositories/sessions.repo.js +0 -61
- package/dist/src/repositories/sessions.repo.js.map +0 -1
- package/dist/src/repositories/snapshot.repo.d.ts +0 -11
- package/dist/src/repositories/snapshot.repo.d.ts.map +0 -1
- package/dist/src/repositories/snapshot.repo.js +0 -17
- package/dist/src/repositories/snapshot.repo.js.map +0 -1
- package/dist/src/repositories/tasks.repo.d.ts +0 -40
- package/dist/src/repositories/tasks.repo.d.ts.map +0 -1
- package/dist/src/repositories/tasks.repo.js +0 -90
- package/dist/src/repositories/tasks.repo.js.map +0 -1
- package/dist/src/response.d.ts +0 -28
- package/dist/src/response.d.ts.map +0 -1
- package/dist/src/response.js +0 -38
- package/dist/src/response.js.map +0 -1
- package/dist/src/scripts/install-hooks.d.ts +0 -3
- package/dist/src/scripts/install-hooks.d.ts.map +0 -1
- package/dist/src/scripts/install-hooks.js +0 -89
- package/dist/src/scripts/install-hooks.js.map +0 -1
- package/dist/src/services/compaction.service.d.ts +0 -27
- package/dist/src/services/compaction.service.d.ts.map +0 -1
- package/dist/src/services/compaction.service.js +0 -93
- package/dist/src/services/compaction.service.js.map +0 -1
- package/dist/src/services/event-trigger.service.d.ts +0 -24
- package/dist/src/services/event-trigger.service.d.ts.map +0 -1
- package/dist/src/services/event-trigger.service.js +0 -60
- package/dist/src/services/event-trigger.service.js.map +0 -1
- package/dist/src/services/git.service.d.ts +0 -20
- package/dist/src/services/git.service.d.ts.map +0 -1
- package/dist/src/services/git.service.js +0 -88
- package/dist/src/services/git.service.js.map +0 -1
- package/dist/src/services/index.d.ts +0 -5
- package/dist/src/services/index.d.ts.map +0 -1
- package/dist/src/services/index.js +0 -8
- package/dist/src/services/index.js.map +0 -1
- package/dist/src/services/project-scan.service.d.ts +0 -19
- package/dist/src/services/project-scan.service.d.ts.map +0 -1
- package/dist/src/services/project-scan.service.js +0 -66
- package/dist/src/services/project-scan.service.js.map +0 -1
- package/dist/src/tools/backup.d.ts +0 -3
- package/dist/src/tools/backup.d.ts.map +0 -1
- package/dist/src/tools/backup.js +0 -191
- package/dist/src/tools/backup.js.map +0 -1
- package/dist/src/tools/changes.d.ts +0 -3
- package/dist/src/tools/changes.d.ts.map +0 -1
- package/dist/src/tools/changes.js +0 -97
- package/dist/src/tools/changes.js.map +0 -1
- package/dist/src/tools/compaction.d.ts +0 -3
- package/dist/src/tools/compaction.d.ts.map +0 -1
- package/dist/src/tools/compaction.js +0 -151
- package/dist/src/tools/compaction.js.map +0 -1
- package/dist/src/tools/conventions.d.ts +0 -3
- package/dist/src/tools/conventions.d.ts.map +0 -1
- package/dist/src/tools/conventions.js +0 -121
- package/dist/src/tools/conventions.js.map +0 -1
- package/dist/src/tools/decisions.d.ts +0 -3
- package/dist/src/tools/decisions.d.ts.map +0 -1
- package/dist/src/tools/decisions.js +0 -136
- package/dist/src/tools/decisions.js.map +0 -1
- package/dist/src/tools/export-import.d.ts +0 -3
- package/dist/src/tools/export-import.d.ts.map +0 -1
- package/dist/src/tools/export-import.js +0 -180
- package/dist/src/tools/export-import.js.map +0 -1
- package/dist/src/tools/file-notes.d.ts +0 -3
- package/dist/src/tools/file-notes.d.ts.map +0 -1
- package/dist/src/tools/file-notes.js +0 -104
- package/dist/src/tools/file-notes.js.map +0 -1
- package/dist/src/tools/intelligence.d.ts +0 -3
- package/dist/src/tools/intelligence.d.ts.map +0 -1
- package/dist/src/tools/intelligence.js +0 -427
- package/dist/src/tools/intelligence.js.map +0 -1
- package/dist/src/tools/milestones.d.ts +0 -3
- package/dist/src/tools/milestones.d.ts.map +0 -1
- package/dist/src/tools/milestones.js +0 -71
- package/dist/src/tools/milestones.js.map +0 -1
- package/dist/src/tools/scheduler.d.ts +0 -3
- package/dist/src/tools/scheduler.d.ts.map +0 -1
- package/dist/src/tools/scheduler.js +0 -363
- package/dist/src/tools/scheduler.js.map +0 -1
- package/dist/src/tools/sessions.d.ts +0 -3
- package/dist/src/tools/sessions.d.ts.map +0 -1
- package/dist/src/tools/sessions.js +0 -356
- package/dist/src/tools/sessions.js.map +0 -1
- package/dist/src/tools/stats.d.ts +0 -3
- package/dist/src/tools/stats.d.ts.map +0 -1
- package/dist/src/tools/stats.js +0 -63
- package/dist/src/tools/stats.js.map +0 -1
- package/dist/src/tools/tasks.d.ts +0 -3
- package/dist/src/tools/tasks.d.ts.map +0 -1
- package/dist/src/tools/tasks.js +0 -206
- package/dist/src/tools/tasks.js.map +0 -1
- package/dist/src/types.d.ts +0 -170
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -5
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.d.ts +0 -58
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -190
- package/dist/src/utils.js.map +0 -1
- package/dist/tests/helpers/test-db.d.ts +0 -12
- package/dist/tests/helpers/test-db.d.ts.map +0 -1
- package/dist/tests/helpers/test-db.js +0 -149
- package/dist/tests/helpers/test-db.js.map +0 -1
- package/dist/tests/installer/installer.test.d.ts +0 -2
- package/dist/tests/installer/installer.test.d.ts.map +0 -1
- package/dist/tests/installer/installer.test.js +0 -160
- package/dist/tests/installer/installer.test.js.map +0 -1
- package/dist/tests/repositories/repos.test.d.ts +0 -2
- package/dist/tests/repositories/repos.test.d.ts.map +0 -1
- package/dist/tests/repositories/repos.test.js +0 -220
- package/dist/tests/repositories/repos.test.js.map +0 -1
- package/dist/tools/maintenance.d.ts +0 -3
- package/dist/tools/maintenance.d.ts.map +0 -1
- package/dist/tools/maintenance.js +0 -647
- package/dist/tools/maintenance.js.map +0 -1
- package/dist/tools/memory.d.ts +0 -3
- package/dist/tools/memory.d.ts.map +0 -1
- package/dist/tools/memory.js +0 -446
- 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 +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"}
|