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,60 @@
1
+ import { z } from 'zod';
2
+ export function registerPrompts(server) {
3
+ // Triage prompt
4
+ server.prompt('triage', 'Triage and prioritize active reminders', {}, async () => ({
5
+ messages: [{
6
+ role: 'user',
7
+ content: {
8
+ type: 'text',
9
+ text: `Review all active reminders using the check_reminders and list_reminders tools.
10
+ For each reminder:
11
+ 1. Check if it's still relevant
12
+ 2. Suggest priority adjustments if needed
13
+ 3. Identify any that should be completed, snoozed, or deleted
14
+ 4. Flag any overdue items that need immediate attention
15
+
16
+ Present your findings as a prioritized action list.`,
17
+ },
18
+ }],
19
+ }));
20
+ // Guided creation prompt
21
+ server.prompt('guided-creation', 'Help create a well-structured reminder', { task: z.string().describe('What the reminder is about') }, async ({ task }) => ({
22
+ messages: [{
23
+ role: 'user',
24
+ content: {
25
+ type: 'text',
26
+ text: `Help me create a well-structured reminder for: "${task}"
27
+
28
+ Consider:
29
+ 1. What trigger type is most appropriate? (time, keyword, session, heartbeat, condition, manual)
30
+ 2. What priority level? (1=Critical, 2=High, 3=Normal, 4=Low, 5=Someday)
31
+ 3. Should it have a due date?
32
+ 4. Any relevant tags or categories?
33
+ 5. Should it recur?
34
+ 6. Any dependencies on other reminders?
35
+
36
+ Use the add_reminder tool to create it once we've determined the right parameters.`,
37
+ },
38
+ }],
39
+ }));
40
+ // Session briefing prompt
41
+ server.prompt('session-briefing', 'Get a briefing of all relevant reminders for this session', {}, async () => ({
42
+ messages: [{
43
+ role: 'user',
44
+ content: {
45
+ type: 'text',
46
+ text: `Start a session briefing:
47
+ 1. Use check_reminders to find all triggered reminders
48
+ 2. Use list_reminders to see upcoming items
49
+ 3. Use get_stats to see the overall picture
50
+
51
+ Summarize:
52
+ - What needs immediate attention (overdue/critical)
53
+ - What's coming up today/tomorrow
54
+ - Any session-triggered notes
55
+ - Quick stats overview`,
56
+ },
57
+ }],
58
+ }));
59
+ }
60
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,gBAAgB;IAChB,MAAM,CAAC,MAAM,CACX,QAAQ,EACR,wCAAwC,EACxC,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;;;;;oDAOoC;iBAC3C;aACF,CAAC;KACH,CAAC,CACH,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,MAAM,CACX,iBAAiB,EACjB,wCAAwC,EACxC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,EAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnB,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,mDAAmD,IAAI;;;;;;;;;;mFAUY;iBAC1E;aACF,CAAC;KACH,CAAC,CACH,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,MAAM,CACX,kBAAkB,EAClB,2DAA2D,EAC3D,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;;;;;;;uBASO;iBACd;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerResources(server: McpServer): void;
3
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwFzD"}
@@ -0,0 +1,73 @@
1
+ import { getDb } from '../db.js';
2
+ import { coreList, coreStats, coreSchema } from '../core.js';
3
+ export function registerResources(server) {
4
+ // Active reminders
5
+ server.resource('active-reminders', 'agentrem://reminders/active', { description: 'All active reminders sorted by priority', mimeType: 'application/json' }, async () => {
6
+ const db = getDb();
7
+ try {
8
+ const rows = coreList(db, { limit: 100 });
9
+ return {
10
+ contents: [{
11
+ uri: 'agentrem://reminders/active',
12
+ mimeType: 'application/json',
13
+ text: JSON.stringify(rows, null, 2),
14
+ }],
15
+ };
16
+ }
17
+ finally {
18
+ db.close();
19
+ }
20
+ });
21
+ // Overdue reminders
22
+ server.resource('overdue-reminders', 'agentrem://reminders/overdue', { description: 'Overdue reminders', mimeType: 'application/json' }, async () => {
23
+ const db = getDb();
24
+ try {
25
+ const rows = coreList(db, { due: 'overdue', limit: 100 });
26
+ return {
27
+ contents: [{
28
+ uri: 'agentrem://reminders/overdue',
29
+ mimeType: 'application/json',
30
+ text: JSON.stringify(rows, null, 2),
31
+ }],
32
+ };
33
+ }
34
+ finally {
35
+ db.close();
36
+ }
37
+ });
38
+ // Stats
39
+ server.resource('stats', 'agentrem://stats', { description: 'Reminder statistics', mimeType: 'application/json' }, async () => {
40
+ const db = getDb();
41
+ try {
42
+ const s = coreStats(db);
43
+ return {
44
+ contents: [{
45
+ uri: 'agentrem://stats',
46
+ mimeType: 'application/json',
47
+ text: JSON.stringify(s, null, 2),
48
+ }],
49
+ };
50
+ }
51
+ finally {
52
+ db.close();
53
+ }
54
+ });
55
+ // Schema
56
+ server.resource('schema', 'agentrem://schema', { description: 'Database schema', mimeType: 'text/plain' }, async () => {
57
+ const db = getDb();
58
+ try {
59
+ const sqls = coreSchema(db);
60
+ return {
61
+ contents: [{
62
+ uri: 'agentrem://schema',
63
+ mimeType: 'text/plain',
64
+ text: sqls.join('\n\n'),
65
+ }],
66
+ };
67
+ }
68
+ finally {
69
+ db.close();
70
+ }
71
+ });
72
+ }
73
+ //# sourceMappingURL=resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/mcp/resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ export declare function createMcpServer(): McpServer;
4
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,wBAAgB,eAAe,IAAI,SAAS,CAW3C"}
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ // ── MCP Server Entry Point ────────────────────────────────────────────────
3
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
+ import { registerTools } from './tools.js';
6
+ import { registerResources } from './resources.js';
7
+ import { registerPrompts } from './prompts.js';
8
+ export function createMcpServer() {
9
+ const server = new McpServer({
10
+ name: 'agentrem',
11
+ version: '0.1.0',
12
+ });
13
+ registerTools(server);
14
+ registerResources(server);
15
+ registerPrompts(server);
16
+ return server;
17
+ }
18
+ async function main() {
19
+ const server = createMcpServer();
20
+ const transport = new StdioServerTransport();
21
+ await server.connect(transport);
22
+ }
23
+ // Only run main if this file is the entry point
24
+ const isMain = process.argv[1]?.endsWith('server.js') || process.argv[1]?.endsWith('server.ts');
25
+ if (isMain) {
26
+ main().catch((err) => {
27
+ console.error('MCP server error:', err);
28
+ process.exit(1);
29
+ });
30
+ }
31
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";AACA,6EAA6E;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,CAAC;IACtB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,gDAAgD;AAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChG,IAAI,MAAM,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerTools(server: McpServer): void;
3
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBpE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2iBrD"}