@myagentroam/node 0.10.41 → 0.10.42
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.
|
@@ -140,7 +140,7 @@ export class NotificationMcpBridge {
|
|
|
140
140
|
if ((templateId !== undefined && typeof templateId !== 'string') ||
|
|
141
141
|
(title !== undefined &&
|
|
142
142
|
(typeof title !== 'string' || title.length > 160 || /[\r\n]/u.test(title))) ||
|
|
143
|
-
typeof recipientEmail !== 'string' ||
|
|
143
|
+
(recipientEmail !== undefined && typeof recipientEmail !== 'string') ||
|
|
144
144
|
typeof message !== 'string' ||
|
|
145
145
|
typeof callId !== 'string')
|
|
146
146
|
throw new Error('MAIL_INPUT_INVALID');
|
|
@@ -148,7 +148,7 @@ export class NotificationMcpBridge {
|
|
|
148
148
|
...current,
|
|
149
149
|
templateId: templateId ?? '',
|
|
150
150
|
...(title === undefined ? {} : { title }),
|
|
151
|
-
recipientEmail,
|
|
151
|
+
...(recipientEmail === undefined ? {} : { recipientEmail }),
|
|
152
152
|
message,
|
|
153
153
|
callId
|
|
154
154
|
});
|
|
@@ -11,7 +11,7 @@ if (endpoint === undefined || token === undefined)
|
|
|
11
11
|
throw new Error('MAIL_CAPABILITY_INVALID');
|
|
12
12
|
const server = new McpServer({ name: NODE_MCP.notification.name, version: NODE_MCP_VERSION });
|
|
13
13
|
server.registerTool(NODE_MCP.notification.tools.email, {
|
|
14
|
-
description: 'Send a notification email
|
|
14
|
+
description: 'Send a notification email from this MAR-managed Workspace conversation. To email the initiating user’s own account, omit recipientEmail; the Server uses that account’s saved email address and fails if no valid address is configured. Specify recipientEmail only to send to another explicitly authorized address. The Agent works with files and tools on the authorized MAR Node; the MAR Server sends email using its administrator-configured SMTP account. This is not the browser or Node local email account, nor a repository cron/CI notification. This tool cannot access SMTP credentials. Omit the template to use the built-in notification template in the sender’s preferred language; optionally select notification-en-US or notification-zh-CN. Each call may send a real email; do not retry after an uncertain result.',
|
|
15
15
|
inputSchema: {
|
|
16
16
|
templateId: z
|
|
17
17
|
.string()
|
|
@@ -24,7 +24,12 @@ server.registerTool(NODE_MCP.notification.tools.email, {
|
|
|
24
24
|
.regex(/^[^\r\n]*$/u)
|
|
25
25
|
.optional()
|
|
26
26
|
.describe('Optional notification title rendered into the email subject.'),
|
|
27
|
-
recipientEmail: z
|
|
27
|
+
recipientEmail: z
|
|
28
|
+
.string()
|
|
29
|
+
.min(3)
|
|
30
|
+
.max(320)
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Optional authorized recipient override. Omit to email the initiating user’s own account.'),
|
|
28
33
|
message: z.string().min(1).max(4000).describe('Notification text for {{message}}.')
|
|
29
34
|
}
|
|
30
35
|
}, async (args) => {
|
|
@@ -33,7 +38,7 @@ server.registerTool(NODE_MCP.notification.tools.email, {
|
|
|
33
38
|
});
|
|
34
39
|
if (process.env['MAR_NOTIFICATION_MCP_CHANNELS'] === '1') {
|
|
35
40
|
server.registerTool(NODE_MCP.notification.tools.send, {
|
|
36
|
-
description: 'Send a real notification from the current authorized Workspace execution. Defaults to push to the initiating user; email
|
|
41
|
+
description: 'Send a real notification from the current authorized Workspace execution. Defaults to push to the initiating user. To email the user’s own account, include email in channels and omit recipientEmail; the Server uses the initiating account’s saved email address and fails if no valid address is configured. Specify recipientEmail only to send to another explicitly authorized address. Channels and registered Push clients are independent. Push may be suppressed while any workbench connection is open or unavailable due to system, browser, or OS settings. Acceptance is not delivery. Do not disclose secrets or send to unauthorized recipients. Each invocation is a new side effect; do not retry after an uncertain or partial result.',
|
|
37
42
|
inputSchema: {
|
|
38
43
|
channels: z
|
|
39
44
|
.array(z.enum(['push', 'email']))
|
|
@@ -51,7 +56,7 @@ if (process.env['MAR_NOTIFICATION_MCP_CHANNELS'] === '1') {
|
|
|
51
56
|
.min(3)
|
|
52
57
|
.max(320)
|
|
53
58
|
.optional()
|
|
54
|
-
.describe('
|
|
59
|
+
.describe('Optional authorized recipient override for the email channel. Omit to email the initiating user’s own account.'),
|
|
55
60
|
templateId: z.enum(['', 'notification-en-US', 'notification-zh-CN']).optional()
|
|
56
61
|
}
|
|
57
62
|
}, async (args) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myagentroam/node",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.42",
|
|
4
4
|
"description": "MyAgentRoam Node runtime CLI.",
|
|
5
5
|
"license": "Apache-2.0 AND GPL-2.0-or-later",
|
|
6
6
|
"type": "module",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"playwright": "1.62.1",
|
|
38
38
|
"ws": "^8.21.3",
|
|
39
39
|
"zod": "4.4.3",
|
|
40
|
-
"@myagentroam/agent": "0.10.
|
|
41
|
-
"@myagentroam/protocol": "0.10.41",
|
|
40
|
+
"@myagentroam/agent": "0.10.42",
|
|
42
41
|
"@myagentroam/code-navigation": "0.10.1",
|
|
42
|
+
"@myagentroam/protocol": "0.10.42",
|
|
43
43
|
"@myagentroam/marctl": "0.10.7"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|