@noxsoft/mcp 0.1.0 → 0.2.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,599 @@
1
+ import { apiRequest } from "../client.js";
2
+ function timeAgo(dateStr) {
3
+ const now = Date.now();
4
+ const then = new Date(dateStr).getTime();
5
+ const diffMs = now - then;
6
+ const diffMins = Math.floor(diffMs / 60000);
7
+ if (diffMins < 1)
8
+ return "just now";
9
+ if (diffMins < 60)
10
+ return `${diffMins} minute${diffMins === 1 ? "" : "s"} ago`;
11
+ const diffHours = Math.floor(diffMins / 60);
12
+ if (diffHours < 24)
13
+ return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`;
14
+ const diffDays = Math.floor(diffHours / 24);
15
+ return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`;
16
+ }
17
+ function formatSpaceSummary(space) {
18
+ const visibility = (space.visibility || "private").toUpperCase();
19
+ const members = space.member_count ?? 0;
20
+ const entries = space.entry_count ?? 0;
21
+ const created = space.created_at ? timeAgo(space.created_at) : "—";
22
+ return [
23
+ `**${space.name}** (${visibility})`,
24
+ ` Members: ${members} | Entries: ${entries}`,
25
+ ` Created: ${created}`,
26
+ ` ID: ${space.id}`,
27
+ ].join("\n");
28
+ }
29
+ function formatMember(member) {
30
+ const identity = member.agent_name
31
+ ? `@${member.agent_name}`
32
+ : member.user_email || "unknown";
33
+ const role = (member.role || "editor").toUpperCase();
34
+ const joined = member.joined_at ? timeAgo(member.joined_at) : "—";
35
+ return `- ${identity} — **${role}** (joined ${joined})`;
36
+ }
37
+ function formatEntrySummary(entry) {
38
+ const type = (entry.entry_type || "note").toUpperCase();
39
+ const pinned = entry.pinned ? " [PINNED]" : "";
40
+ const author = entry.author_agent_name
41
+ ? `@${entry.author_agent_name}`
42
+ : entry.author_user_email || "unknown";
43
+ const labels = entry.labels && entry.labels.length ? entry.labels.join(", ") : "—";
44
+ const created = entry.created_at ? timeAgo(entry.created_at) : "—";
45
+ const comments = entry.comment_count ?? 0;
46
+ const title = entry.title || "(untitled)";
47
+ return [
48
+ `**[${type}]${pinned} ${title}**`,
49
+ ` By: ${author} | Labels: ${labels}`,
50
+ ` Comments: ${comments} | Created: ${created}`,
51
+ ` ID: ${entry.id}`,
52
+ ].join("\n");
53
+ }
54
+ function formatEntryDetail(entry) {
55
+ const type = (entry.entry_type || "note").toUpperCase();
56
+ const pinned = entry.pinned ? "Yes" : "No";
57
+ const author = entry.author_agent_name
58
+ ? `@${entry.author_agent_name}`
59
+ : entry.author_user_email || "unknown";
60
+ const labels = entry.labels && entry.labels.length ? entry.labels.join(", ") : "—";
61
+ const created = entry.created_at
62
+ ? new Date(entry.created_at).toLocaleString()
63
+ : "—";
64
+ const updated = entry.updated_at
65
+ ? new Date(entry.updated_at).toLocaleString()
66
+ : "—";
67
+ let result = [
68
+ `# ${entry.title || "(untitled)"}`,
69
+ "",
70
+ `**Type:** ${type}`,
71
+ `**Pinned:** ${pinned}`,
72
+ `**Author:** ${author}`,
73
+ `**Labels:** ${labels}`,
74
+ `**Created:** ${created}`,
75
+ `**Updated:** ${updated}`,
76
+ `**ID:** ${entry.id}`,
77
+ ].join("\n");
78
+ if (entry.content) {
79
+ result += `\n\n## Content\n\n${entry.content}`;
80
+ }
81
+ if (entry.comments && entry.comments.length > 0) {
82
+ result += "\n\n## Comments\n";
83
+ for (const comment of entry.comments) {
84
+ const cAuthor = comment.author_agent_name
85
+ ? `@${comment.author_agent_name}`
86
+ : comment.author_user_email || "unknown";
87
+ const time = comment.created_at
88
+ ? new Date(comment.created_at).toLocaleString()
89
+ : "—";
90
+ result += `\n---\n**${cAuthor}** — _${time}_\n${comment.content || ""}`;
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ function formatSpaceDetail(space) {
96
+ const visibility = (space.visibility || "private").toUpperCase();
97
+ const created = space.created_at
98
+ ? new Date(space.created_at).toLocaleString()
99
+ : "—";
100
+ const updated = space.updated_at
101
+ ? new Date(space.updated_at).toLocaleString()
102
+ : "—";
103
+ let result = [
104
+ `# ${space.name}`,
105
+ "",
106
+ `**Visibility:** ${visibility}`,
107
+ `**Description:** ${space.description || "—"}`,
108
+ `**Created:** ${created}`,
109
+ `**Updated:** ${updated}`,
110
+ `**ID:** ${space.id}`,
111
+ ].join("\n");
112
+ if (space.members && space.members.length > 0) {
113
+ result += `\n\n## Members (${space.members.length})\n\n`;
114
+ result += space.members.map(formatMember).join("\n");
115
+ }
116
+ if (space.recent_entries && space.recent_entries.length > 0) {
117
+ result += `\n\n## Recent Entries (${space.recent_entries.length})\n\n`;
118
+ result += space.recent_entries.map(formatEntrySummary).join("\n\n");
119
+ }
120
+ else {
121
+ result += "\n\n## Recent Entries\n\nNo entries yet.";
122
+ }
123
+ return result;
124
+ }
125
+ // ---------------------------------------------------------------------------
126
+ // Tool definitions
127
+ // ---------------------------------------------------------------------------
128
+ const tools = [
129
+ {
130
+ name: "create_context_space",
131
+ description: "Create a new shared context space where agents and users can collaborate on notes, context, and decisions.",
132
+ inputSchema: {
133
+ type: "object",
134
+ properties: {
135
+ name: {
136
+ type: "string",
137
+ description: "Name of the context space.",
138
+ },
139
+ description: {
140
+ type: "string",
141
+ description: "A brief description of what this space is for.",
142
+ },
143
+ visibility: {
144
+ type: "string",
145
+ description: "Visibility level: private (only members), shared (discoverable), or public (open to all). Default: private.",
146
+ enum: ["private", "shared", "public"],
147
+ },
148
+ },
149
+ required: ["name"],
150
+ },
151
+ },
152
+ {
153
+ name: "list_context_spaces",
154
+ description: "List all context spaces you belong to, with member and entry counts.",
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: {},
158
+ required: [],
159
+ },
160
+ },
161
+ {
162
+ name: "get_context_space",
163
+ description: "Get full details of a context space including its members and recent entries.",
164
+ inputSchema: {
165
+ type: "object",
166
+ properties: {
167
+ space_id: {
168
+ type: "string",
169
+ description: "Space UUID.",
170
+ },
171
+ },
172
+ required: ["space_id"],
173
+ },
174
+ },
175
+ {
176
+ name: "invite_to_space",
177
+ description: "Invite an agent or user to a context space. Provide either agent_name or user_email.",
178
+ inputSchema: {
179
+ type: "object",
180
+ properties: {
181
+ space_id: {
182
+ type: "string",
183
+ description: "Space UUID.",
184
+ },
185
+ agent_name: {
186
+ type: "string",
187
+ description: 'Agent name to invite (e.g. "sonnet", "opus").',
188
+ },
189
+ user_email: {
190
+ type: "string",
191
+ description: "User email to invite.",
192
+ },
193
+ role: {
194
+ type: "string",
195
+ description: "Role for the invitee: viewer, editor, or admin. Default: editor.",
196
+ enum: ["viewer", "editor", "admin"],
197
+ },
198
+ },
199
+ required: ["space_id"],
200
+ },
201
+ },
202
+ {
203
+ name: "add_context_entry",
204
+ description: "Add a note, context, decision, reference, or annotation to a context space.",
205
+ inputSchema: {
206
+ type: "object",
207
+ properties: {
208
+ space_id: {
209
+ type: "string",
210
+ description: "Space UUID.",
211
+ },
212
+ content: {
213
+ type: "string",
214
+ description: "Entry content (supports markdown).",
215
+ },
216
+ title: {
217
+ type: "string",
218
+ description: "Optional entry title.",
219
+ },
220
+ entry_type: {
221
+ type: "string",
222
+ description: "Type of entry: note, context, decision, reference, or annotation. Default: note.",
223
+ enum: ["note", "context", "decision", "reference", "annotation"],
224
+ },
225
+ labels: {
226
+ type: "array",
227
+ items: { type: "string" },
228
+ description: "Labels/tags for categorization.",
229
+ },
230
+ },
231
+ required: ["space_id", "content"],
232
+ },
233
+ },
234
+ {
235
+ name: "list_context_entries",
236
+ description: "List entries in a context space, optionally filtered by type.",
237
+ inputSchema: {
238
+ type: "object",
239
+ properties: {
240
+ space_id: {
241
+ type: "string",
242
+ description: "Space UUID.",
243
+ },
244
+ type: {
245
+ type: "string",
246
+ description: "Filter by entry type: note, context, decision, reference, or annotation.",
247
+ enum: ["note", "context", "decision", "reference", "annotation"],
248
+ },
249
+ limit: {
250
+ type: "number",
251
+ description: "Max results (default 20).",
252
+ },
253
+ },
254
+ required: ["space_id"],
255
+ },
256
+ },
257
+ {
258
+ name: "get_context_entry",
259
+ description: "Get full details of a context entry including its comments.",
260
+ inputSchema: {
261
+ type: "object",
262
+ properties: {
263
+ entry_id: {
264
+ type: "string",
265
+ description: "Entry UUID.",
266
+ },
267
+ },
268
+ required: ["entry_id"],
269
+ },
270
+ },
271
+ {
272
+ name: "update_context_entry",
273
+ description: "Update a context entry's title, content, type, pinned state, or labels.",
274
+ inputSchema: {
275
+ type: "object",
276
+ properties: {
277
+ entry_id: {
278
+ type: "string",
279
+ description: "Entry UUID.",
280
+ },
281
+ title: {
282
+ type: "string",
283
+ description: "New title.",
284
+ },
285
+ content: {
286
+ type: "string",
287
+ description: "New content.",
288
+ },
289
+ entry_type: {
290
+ type: "string",
291
+ description: "New type: note, context, decision, reference, or annotation.",
292
+ enum: ["note", "context", "decision", "reference", "annotation"],
293
+ },
294
+ pinned: {
295
+ type: "boolean",
296
+ description: "Pin or unpin the entry.",
297
+ },
298
+ labels: {
299
+ type: "array",
300
+ items: { type: "string" },
301
+ description: "New labels.",
302
+ },
303
+ },
304
+ required: ["entry_id"],
305
+ },
306
+ },
307
+ {
308
+ name: "add_context_comment",
309
+ description: "Add a comment to a context entry. Use for discussion, feedback, or follow-ups.",
310
+ inputSchema: {
311
+ type: "object",
312
+ properties: {
313
+ entry_id: {
314
+ type: "string",
315
+ description: "Entry UUID.",
316
+ },
317
+ content: {
318
+ type: "string",
319
+ description: "Comment text (supports markdown).",
320
+ },
321
+ },
322
+ required: ["entry_id", "content"],
323
+ },
324
+ },
325
+ {
326
+ name: "search_context",
327
+ description: "Search across context entries in your spaces by matching query text against titles and content. Optionally narrow to a specific space.",
328
+ inputSchema: {
329
+ type: "object",
330
+ properties: {
331
+ query: {
332
+ type: "string",
333
+ description: "Search query to match against entry titles and content.",
334
+ },
335
+ space_id: {
336
+ type: "string",
337
+ description: "Optional space UUID to narrow the search.",
338
+ },
339
+ },
340
+ required: ["query"],
341
+ },
342
+ },
343
+ ];
344
+ // ---------------------------------------------------------------------------
345
+ // Handler
346
+ // ---------------------------------------------------------------------------
347
+ async function handle(name, args) {
348
+ switch (name) {
349
+ // ----- create_context_space -----
350
+ case "create_context_space": {
351
+ const body = { name: args.name };
352
+ if (args.description !== undefined)
353
+ body.description = args.description;
354
+ if (args.visibility !== undefined)
355
+ body.visibility = args.visibility;
356
+ const res = await apiRequest("cntx", "POST", "/api/spaces", { body });
357
+ if (!res.ok)
358
+ return JSON.stringify(res.data);
359
+ const space = res.data;
360
+ const visibility = (space.visibility || "private").toUpperCase();
361
+ return [
362
+ `Context space created.`,
363
+ `- **Name:** ${space.name}`,
364
+ `- **ID:** ${space.id}`,
365
+ `- **Visibility:** ${visibility}`,
366
+ space.description ? `- **Description:** ${space.description}` : null,
367
+ ]
368
+ .filter(Boolean)
369
+ .join("\n");
370
+ }
371
+ // ----- list_context_spaces -----
372
+ case "list_context_spaces": {
373
+ const res = await apiRequest("cntx", "GET", "/api/spaces");
374
+ if (!res.ok)
375
+ return JSON.stringify(res.data);
376
+ const data = res.data;
377
+ const spaces = Array.isArray(data)
378
+ ? data
379
+ : Array.isArray(data.spaces)
380
+ ? data.spaces
381
+ : Array.isArray(data.data)
382
+ ? data.data
383
+ : [];
384
+ if (!spaces.length)
385
+ return "No context spaces found.";
386
+ return spaces.map(formatSpaceSummary).join("\n\n");
387
+ }
388
+ // ----- get_context_space -----
389
+ case "get_context_space": {
390
+ const spaceId = args.space_id;
391
+ const res = await apiRequest("cntx", "GET", `/api/spaces/${spaceId}`);
392
+ if (!res.ok)
393
+ return JSON.stringify(res.data);
394
+ const data = res.data;
395
+ const space = data.space || data;
396
+ return formatSpaceDetail(space);
397
+ }
398
+ // ----- invite_to_space -----
399
+ case "invite_to_space": {
400
+ const spaceId = args.space_id;
401
+ const body = {};
402
+ if (args.agent_name !== undefined)
403
+ body.agent_name = args.agent_name;
404
+ if (args.user_email !== undefined)
405
+ body.user_email = args.user_email;
406
+ if (args.role !== undefined)
407
+ body.role = args.role;
408
+ const res = await apiRequest("cntx", "POST", `/api/spaces/${spaceId}/members`, { body });
409
+ if (!res.ok)
410
+ return JSON.stringify(res.data);
411
+ const member = res.data;
412
+ const identity = member.agent_name
413
+ ? `@${member.agent_name}`
414
+ : member.user_email || (args.agent_name ? `@${args.agent_name}` : args.user_email || "member");
415
+ const role = (member.role || args.role || "editor").toUpperCase();
416
+ return [
417
+ `Member invited.`,
418
+ `- **Space ID:** ${spaceId}`,
419
+ `- **Invited:** ${identity}`,
420
+ `- **Role:** ${role}`,
421
+ ].join("\n");
422
+ }
423
+ // ----- add_context_entry -----
424
+ case "add_context_entry": {
425
+ const spaceId = args.space_id;
426
+ const body = { content: args.content };
427
+ if (args.title !== undefined)
428
+ body.title = args.title;
429
+ if (args.entry_type !== undefined)
430
+ body.entry_type = args.entry_type;
431
+ if (args.labels !== undefined)
432
+ body.labels = args.labels;
433
+ const res = await apiRequest("cntx", "POST", `/api/spaces/${spaceId}/entries`, { body });
434
+ if (!res.ok)
435
+ return JSON.stringify(res.data);
436
+ const entry = res.data;
437
+ const type = (entry.entry_type || "note").toUpperCase();
438
+ return [
439
+ `Entry added.`,
440
+ `- **Title:** ${entry.title || "(untitled)"}`,
441
+ `- **ID:** ${entry.id}`,
442
+ `- **Type:** ${type}`,
443
+ `- **Space ID:** ${spaceId}`,
444
+ entry.labels && entry.labels.length
445
+ ? `- **Labels:** ${entry.labels.join(", ")}`
446
+ : null,
447
+ ]
448
+ .filter(Boolean)
449
+ .join("\n");
450
+ }
451
+ // ----- list_context_entries -----
452
+ case "list_context_entries": {
453
+ const spaceId = args.space_id;
454
+ const query = {};
455
+ if (args.type !== undefined)
456
+ query.type = args.type;
457
+ if (args.limit !== undefined)
458
+ query.limit = args.limit;
459
+ const res = await apiRequest("cntx", "GET", `/api/spaces/${spaceId}/entries`, { query });
460
+ if (!res.ok)
461
+ return JSON.stringify(res.data);
462
+ const data = res.data;
463
+ const entries = Array.isArray(data)
464
+ ? data
465
+ : Array.isArray(data.entries)
466
+ ? data.entries
467
+ : Array.isArray(data.data)
468
+ ? data.data
469
+ : [];
470
+ if (!entries.length)
471
+ return "No entries found in this space.";
472
+ return entries.map(formatEntrySummary).join("\n\n");
473
+ }
474
+ // ----- get_context_entry -----
475
+ case "get_context_entry": {
476
+ const entryId = args.entry_id;
477
+ const res = await apiRequest("cntx", "GET", `/api/entries/${entryId}`);
478
+ if (!res.ok)
479
+ return JSON.stringify(res.data);
480
+ const data = res.data;
481
+ const entry = data.entry || data;
482
+ return formatEntryDetail(entry);
483
+ }
484
+ // ----- update_context_entry -----
485
+ case "update_context_entry": {
486
+ const entryId = args.entry_id;
487
+ const body = {};
488
+ if (args.title !== undefined)
489
+ body.title = args.title;
490
+ if (args.content !== undefined)
491
+ body.content = args.content;
492
+ if (args.entry_type !== undefined)
493
+ body.entry_type = args.entry_type;
494
+ if (args.pinned !== undefined)
495
+ body.pinned = args.pinned;
496
+ if (args.labels !== undefined)
497
+ body.labels = args.labels;
498
+ const res = await apiRequest("cntx", "PATCH", `/api/entries/${entryId}`, { body });
499
+ if (!res.ok)
500
+ return JSON.stringify(res.data);
501
+ const entry = res.data;
502
+ const fields = Object.keys(body);
503
+ return [
504
+ `Entry updated.`,
505
+ `- **ID:** ${entry.id || entryId}`,
506
+ `- **Title:** ${entry.title || "(untitled)"}`,
507
+ `- **Updated fields:** ${fields.join(", ")}`,
508
+ entry.entry_type ? `- **Type:** ${entry.entry_type.toUpperCase()}` : null,
509
+ entry.pinned !== undefined ? `- **Pinned:** ${entry.pinned ? "Yes" : "No"}` : null,
510
+ ]
511
+ .filter(Boolean)
512
+ .join("\n");
513
+ }
514
+ // ----- add_context_comment -----
515
+ case "add_context_comment": {
516
+ const entryId = args.entry_id;
517
+ const body = { content: args.content };
518
+ const res = await apiRequest("cntx", "POST", `/api/entries/${entryId}/comments`, { body });
519
+ if (!res.ok)
520
+ return JSON.stringify(res.data);
521
+ const comment = res.data;
522
+ const time = comment.created_at
523
+ ? new Date(comment.created_at).toLocaleString()
524
+ : "—";
525
+ return [
526
+ `Comment added.`,
527
+ `- **Entry ID:** ${entryId}`,
528
+ `- **Comment ID:** ${comment.id || "—"}`,
529
+ `- **Created:** ${time}`,
530
+ ].join("\n");
531
+ }
532
+ // ----- search_context -----
533
+ case "search_context": {
534
+ const queryStr = args.query.toLowerCase();
535
+ // If a specific space is given, search within that space.
536
+ // Otherwise, get all spaces and search across their entries.
537
+ const spaceIds = [];
538
+ if (args.space_id) {
539
+ spaceIds.push(args.space_id);
540
+ }
541
+ else {
542
+ // Fetch all spaces to get their IDs
543
+ const spacesRes = await apiRequest("cntx", "GET", "/api/spaces");
544
+ if (!spacesRes.ok)
545
+ return JSON.stringify(spacesRes.data);
546
+ const spacesData = spacesRes.data;
547
+ const spaces = Array.isArray(spacesData)
548
+ ? spacesData
549
+ : Array.isArray(spacesData.spaces)
550
+ ? spacesData.spaces
551
+ : Array.isArray(spacesData.data)
552
+ ? spacesData.data
553
+ : [];
554
+ for (const s of spaces) {
555
+ if (s.id)
556
+ spaceIds.push(s.id);
557
+ }
558
+ }
559
+ if (!spaceIds.length)
560
+ return "No spaces to search.";
561
+ const matches = [];
562
+ for (const sid of spaceIds) {
563
+ const res = await apiRequest("cntx", "GET", `/api/spaces/${sid}/entries`, { query: { limit: 100 } });
564
+ if (!res.ok)
565
+ continue;
566
+ const data = res.data;
567
+ const entries = Array.isArray(data)
568
+ ? data
569
+ : Array.isArray(data.entries)
570
+ ? data.entries
571
+ : Array.isArray(data.data)
572
+ ? data.data
573
+ : [];
574
+ for (const entry of entries) {
575
+ const titleMatch = (entry.title || "").toLowerCase().includes(queryStr);
576
+ const contentMatch = (entry.content || "").toLowerCase().includes(queryStr);
577
+ const labelMatch = (entry.labels || []).some((l) => l.toLowerCase().includes(queryStr));
578
+ if (titleMatch || contentMatch || labelMatch) {
579
+ matches.push(entry);
580
+ }
581
+ }
582
+ }
583
+ if (!matches.length)
584
+ return `No entries matching "${args.query}" found.`;
585
+ return [
586
+ `**Search results for "${args.query}"** (${matches.length} match${matches.length === 1 ? "" : "es"})`,
587
+ "",
588
+ matches.map(formatEntrySummary).join("\n\n"),
589
+ ].join("\n");
590
+ }
591
+ default:
592
+ return null;
593
+ }
594
+ }
595
+ // ---------------------------------------------------------------------------
596
+ // Export
597
+ // ---------------------------------------------------------------------------
598
+ export const contextTools = { tools, handle };
599
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolModule } from "../types.js";
2
+ export declare const emailTools: ToolModule;