neuron-mcp-server 1.0.1 → 1.1.1

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 (98) hide show
  1. package/README.md +28 -16
  2. package/dist/client.d.ts +6 -0
  3. package/dist/client.js +50 -12
  4. package/dist/client.js.map +1 -1
  5. package/dist/index.js +51 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/ai.js +9 -3
  8. package/dist/tools/ai.js.map +1 -1
  9. package/dist/tools/approvals.d.ts +2 -0
  10. package/dist/tools/approvals.js +181 -0
  11. package/dist/tools/approvals.js.map +1 -0
  12. package/dist/tools/audit.js +7 -4
  13. package/dist/tools/audit.js.map +1 -1
  14. package/dist/tools/auth.js +119 -19
  15. package/dist/tools/auth.js.map +1 -1
  16. package/dist/tools/billing.js +22 -6
  17. package/dist/tools/billing.js.map +1 -1
  18. package/dist/tools/blog.js +98 -34
  19. package/dist/tools/blog.js.map +1 -1
  20. package/dist/tools/bot-api-keys.js +27 -12
  21. package/dist/tools/bot-api-keys.js.map +1 -1
  22. package/dist/tools/bot-api.js +53 -27
  23. package/dist/tools/bot-api.js.map +1 -1
  24. package/dist/tools/bots.js +116 -68
  25. package/dist/tools/bots.js.map +1 -1
  26. package/dist/tools/broadcasts.js +78 -38
  27. package/dist/tools/broadcasts.js.map +1 -1
  28. package/dist/tools/builtin-tools.js +19 -12
  29. package/dist/tools/builtin-tools.js.map +1 -1
  30. package/dist/tools/campaigns.js +149 -61
  31. package/dist/tools/campaigns.js.map +1 -1
  32. package/dist/tools/channels.js +163 -53
  33. package/dist/tools/channels.js.map +1 -1
  34. package/dist/tools/contact-lists.js +111 -51
  35. package/dist/tools/contact-lists.js.map +1 -1
  36. package/dist/tools/contacts.js +117 -44
  37. package/dist/tools/contacts.js.map +1 -1
  38. package/dist/tools/conversations.js +95 -50
  39. package/dist/tools/conversations.js.map +1 -1
  40. package/dist/tools/flows.d.ts +2 -0
  41. package/dist/tools/flows.js +242 -0
  42. package/dist/tools/flows.js.map +1 -0
  43. package/dist/tools/group-management.d.ts +2 -0
  44. package/dist/tools/group-management.js +239 -0
  45. package/dist/tools/group-management.js.map +1 -0
  46. package/dist/tools/leads.d.ts +2 -0
  47. package/dist/tools/leads.js +100 -0
  48. package/dist/tools/leads.js.map +1 -0
  49. package/dist/tools/list-campaigns.d.ts +2 -0
  50. package/dist/tools/list-campaigns.js +152 -0
  51. package/dist/tools/list-campaigns.js.map +1 -0
  52. package/dist/tools/list-pool.js +250 -33
  53. package/dist/tools/list-pool.js.map +1 -1
  54. package/dist/tools/media.js +12 -7
  55. package/dist/tools/media.js.map +1 -1
  56. package/dist/tools/newsletters.js +106 -26
  57. package/dist/tools/newsletters.js.map +1 -1
  58. package/dist/tools/organizations.js +76 -35
  59. package/dist/tools/organizations.js.map +1 -1
  60. package/dist/tools/outbound-webhooks.js +32 -20
  61. package/dist/tools/outbound-webhooks.js.map +1 -1
  62. package/dist/tools/payouts.js +44 -17
  63. package/dist/tools/payouts.js.map +1 -1
  64. package/dist/tools/personas.d.ts +2 -0
  65. package/dist/tools/personas.js +141 -0
  66. package/dist/tools/personas.js.map +1 -0
  67. package/dist/tools/polls.d.ts +2 -0
  68. package/dist/tools/polls.js +30 -0
  69. package/dist/tools/polls.js.map +1 -0
  70. package/dist/tools/pool.js +101 -43
  71. package/dist/tools/pool.js.map +1 -1
  72. package/dist/tools/products.d.ts +2 -0
  73. package/dist/tools/products.js +277 -0
  74. package/dist/tools/products.js.map +1 -0
  75. package/dist/tools/profile-privacy.d.ts +2 -0
  76. package/dist/tools/profile-privacy.js +195 -0
  77. package/dist/tools/profile-privacy.js.map +1 -0
  78. package/dist/tools/reflections.js +25 -13
  79. package/dist/tools/reflections.js.map +1 -1
  80. package/dist/tools/scheduled-messages.d.ts +2 -0
  81. package/dist/tools/scheduled-messages.js +124 -0
  82. package/dist/tools/scheduled-messages.js.map +1 -0
  83. package/dist/tools/social-channels.d.ts +2 -0
  84. package/dist/tools/social-channels.js +318 -0
  85. package/dist/tools/social-channels.js.map +1 -0
  86. package/dist/tools/tasks.d.ts +2 -0
  87. package/dist/tools/tasks.js +155 -0
  88. package/dist/tools/tasks.js.map +1 -0
  89. package/dist/tools/tools.js +86 -40
  90. package/dist/tools/tools.js.map +1 -1
  91. package/dist/tools/wallets.js +34 -12
  92. package/dist/tools/wallets.js.map +1 -1
  93. package/dist/tools/webhooks.js +35 -20
  94. package/dist/tools/webhooks.js.map +1 -1
  95. package/dist/tools/whatsapp-actions.d.ts +2 -0
  96. package/dist/tools/whatsapp-actions.js +186 -0
  97. package/dist/tools/whatsapp-actions.js.map +1 -0
  98. package/package.json +7 -2
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import http from "node:http";
3
3
  import net from "node:net";
4
- import { api, jsonResult, textResult, errorResult, setAuthToken, getAuthToken } from "../client.js";
4
+ import { api, jsonResult, textResult, errorResult, setAuthToken, getAuthToken, getBaseUrl, setBaseUrl, listInstances } from "../client.js";
5
5
  /** Find an available port by binding to port 0. */
6
6
  function findAvailablePort() {
7
7
  return new Promise((resolve, reject) => {
@@ -80,14 +80,19 @@ export function registerAuthTools(server) {
80
80
  // Register
81
81
  server.registerTool("neuron_register", {
82
82
  title: "Register New User",
83
- description: "Register a new user account with name, email, password, and organization name",
83
+ description: "Register a new user account with name, email, password, and organization name. Creates both the user and an initial organization.",
84
84
  inputSchema: z.object({
85
85
  name: z.string().describe("Full name of the user"),
86
- email: z.string().email().describe("Email address of the user"),
86
+ email: z.string().email().describe("Email address for the new account"),
87
87
  password: z.string().min(8).describe("Password for the account (minimum 8 characters)"),
88
- orgName: z.string().describe("Name of the organization to create"),
88
+ orgName: z.string().describe("Name of the organization to create for this user"),
89
89
  }),
90
- annotations: { destructiveHint: false },
90
+ annotations: {
91
+ readOnlyHint: false,
92
+ destructiveHint: false,
93
+ idempotentHint: false,
94
+ openWorldHint: false,
95
+ },
91
96
  }, async (params) => {
92
97
  try {
93
98
  const result = await api("POST", "/auth/register", {
@@ -110,9 +115,9 @@ export function registerAuthTools(server) {
110
115
  "2. token: Paste an MCP token from the Neuron dashboard\n" +
111
116
  "3. email+password: Legacy login (credentials visible to AI)",
112
117
  inputSchema: z.object({
113
- token: z.string().optional().describe("MCP token from Neuron dashboard (Settings > MCP Tokens)"),
114
- email: z.string().email().optional().describe("Email for legacy login"),
115
- password: z.string().optional().describe("Password for legacy login"),
118
+ token: z.string().optional().describe("MCP token from the Neuron dashboard (Settings > MCP Tokens)"),
119
+ email: z.string().email().optional().describe("Email address for legacy credential-based login"),
120
+ password: z.string().optional().describe("Password for legacy credential-based login"),
116
121
  }).refine((data) => {
117
122
  const hasToken = !!data.token;
118
123
  const hasCredentials = !!data.email && !!data.password;
@@ -123,7 +128,12 @@ export function registerAuthTools(server) {
123
128
  return false;
124
129
  return true;
125
130
  }, { message: "Provide either token, email+password, or nothing for browser auth" }),
126
- annotations: { destructiveHint: false },
131
+ annotations: {
132
+ readOnlyHint: false,
133
+ destructiveHint: false,
134
+ idempotentHint: true,
135
+ openWorldHint: false,
136
+ },
127
137
  }, async (params) => {
128
138
  try {
129
139
  // Mode 1: Direct token
@@ -240,11 +250,16 @@ export function registerAuthTools(server) {
240
250
  // Refresh Token
241
251
  server.registerTool("neuron_refresh_token", {
242
252
  title: "Refresh Access Token",
243
- description: "Refresh the access token using a refresh token. Automatically sets the new access token.",
253
+ description: "Refresh the access token using a refresh token. Automatically sets the new access token for subsequent API calls.",
244
254
  inputSchema: z.object({
245
- refreshToken: z.string().describe("Refresh token obtained from login"),
255
+ refreshToken: z.string().describe("Refresh token obtained from the initial login response"),
246
256
  }),
247
- annotations: { destructiveHint: false },
257
+ annotations: {
258
+ readOnlyHint: false,
259
+ destructiveHint: false,
260
+ idempotentHint: true,
261
+ openWorldHint: false,
262
+ },
248
263
  }, async (params) => {
249
264
  try {
250
265
  const result = await api("POST", "/auth/refresh", {
@@ -262,10 +277,16 @@ export function registerAuthTools(server) {
262
277
  // Switch Organization
263
278
  server.registerTool("neuron_switch_org", {
264
279
  title: "Switch Organization",
265
- description: "Switch to a different organization. Returns a new access token and automatically sets it.",
280
+ description: "Switch to a different organization. Returns a new access token scoped to the target organization and automatically sets it.",
266
281
  inputSchema: z.object({
267
- orgId: z.string().describe("ID of the organization to switch to"),
282
+ orgId: z.string().describe("Unique identifier (UUID) of the organization to switch to"),
268
283
  }),
284
+ annotations: {
285
+ readOnlyHint: false,
286
+ destructiveHint: false,
287
+ idempotentHint: true,
288
+ openWorldHint: false,
289
+ },
269
290
  }, async (params) => {
270
291
  try {
271
292
  const result = await api("POST", "/auth/switch-org", { orgId: params.orgId });
@@ -281,9 +302,14 @@ export function registerAuthTools(server) {
281
302
  // List Organizations
282
303
  server.registerTool("neuron_list_organizations", {
283
304
  title: "List Organizations",
284
- description: "List all organizations the authenticated user belongs to",
305
+ description: "Retrieve all organizations the authenticated user belongs to, including their roles in each.",
285
306
  inputSchema: z.object({}),
286
- annotations: { readOnlyHint: true },
307
+ annotations: {
308
+ readOnlyHint: true,
309
+ destructiveHint: false,
310
+ idempotentHint: true,
311
+ openWorldHint: false,
312
+ },
287
313
  }, async () => {
288
314
  try {
289
315
  const result = await api("GET", "/auth/organizations");
@@ -296,9 +322,14 @@ export function registerAuthTools(server) {
296
322
  // Get Profile
297
323
  server.registerTool("neuron_get_profile", {
298
324
  title: "Get User Profile",
299
- description: "Get the authenticated user's profile information",
325
+ description: "Retrieve the authenticated user's profile information including name, email, role, and current organization.",
300
326
  inputSchema: z.object({}),
301
- annotations: { readOnlyHint: true },
327
+ annotations: {
328
+ readOnlyHint: true,
329
+ destructiveHint: false,
330
+ idempotentHint: true,
331
+ openWorldHint: false,
332
+ },
302
333
  }, async () => {
303
334
  try {
304
335
  const result = await api("GET", "/auth/me");
@@ -313,7 +344,12 @@ export function registerAuthTools(server) {
313
344
  title: "Check Current Account",
314
345
  description: "Check which Neuron account is currently logged in, including user name, email, role, and organization.",
315
346
  inputSchema: z.object({}),
316
- annotations: { readOnlyHint: true },
347
+ annotations: {
348
+ readOnlyHint: true,
349
+ destructiveHint: false,
350
+ idempotentHint: true,
351
+ openWorldHint: false,
352
+ },
317
353
  }, async () => {
318
354
  if (!getAuthToken()) {
319
355
  return textResult("Not logged in. Use neuron_login() to authenticate.");
@@ -335,11 +371,75 @@ export function registerAuthTools(server) {
335
371
  return errorResult(error);
336
372
  }
337
373
  });
374
+ // Switch Instance
375
+ server.registerTool("neuron_switch_instance", {
376
+ title: "Switch Neuron Instance",
377
+ description: "Switch the MCP server to target a different Neuron backend instance. " +
378
+ "Auth tokens are preserved per instance — if you've previously logged in to an instance, " +
379
+ "switching back restores your session automatically.\n\n" +
380
+ "Call with no args to list known instances and see which is active.",
381
+ inputSchema: z.object({
382
+ url: z.string().optional().describe("Base API URL of the Neuron instance (e.g., 'https://api.client.com/api/v1'). " +
383
+ "Omit to list known instances."),
384
+ }),
385
+ annotations: {
386
+ readOnlyHint: false,
387
+ destructiveHint: false,
388
+ idempotentHint: true,
389
+ openWorldHint: false,
390
+ },
391
+ }, async (params) => {
392
+ try {
393
+ // List mode: no URL provided
394
+ if (!params.url) {
395
+ const instances = listInstances();
396
+ const lines = instances.map((i) => `${i.active ? "→ " : " "}${i.url} ${i.authenticated ? "(authenticated)" : "(not authenticated)"}`);
397
+ return textResult(`Known instances:\n${lines.join("\n")}\n\n` +
398
+ `Current: ${getBaseUrl()}\n` +
399
+ `Pass a url to switch: neuron_switch_instance({ url: "https://api.example.com/api/v1" })`);
400
+ }
401
+ // Normalize: strip trailing slashes
402
+ const url = params.url.replace(/\/+$/, "");
403
+ const previous = getBaseUrl();
404
+ if (url === previous) {
405
+ return textResult(`Already targeting ${url}.`);
406
+ }
407
+ setBaseUrl(url);
408
+ // Check if the restored token is still valid
409
+ const token = getAuthToken();
410
+ if (token) {
411
+ try {
412
+ const me = await api("GET", "/auth/me");
413
+ const user = me.data;
414
+ if (user && me.success) {
415
+ return textResult(`Switched to ${url}\n` +
416
+ `Restored session: ${user.name} (${user.email})` +
417
+ (user.organization ? ` — org: ${user.organization.name}` : ""));
418
+ }
419
+ }
420
+ catch {
421
+ // Token expired — clear it for this instance
422
+ setAuthToken("");
423
+ }
424
+ }
425
+ return textResult(`Switched to ${url}\n` +
426
+ `Not authenticated on this instance. Use neuron_login() to authenticate.`);
427
+ }
428
+ catch (error) {
429
+ return errorResult(error);
430
+ }
431
+ });
338
432
  // Logout
339
433
  server.registerTool("neuron_logout", {
340
434
  title: "Logout",
341
435
  description: "Clear the current auth token locally. Does NOT revoke server-side MCP tokens — revoke from the Neuron dashboard (Settings > MCP Tokens) for full invalidation.",
342
436
  inputSchema: z.object({}),
437
+ annotations: {
438
+ readOnlyHint: false,
439
+ destructiveHint: false,
440
+ idempotentHint: true,
441
+ openWorldHint: false,
442
+ },
343
443
  }, async () => {
344
444
  setAuthToken("");
345
445
  return textResult("Logged out. Token cleared locally.\n\nTo revoke MCP tokens server-side, go to Settings > MCP Tokens in the Neuron dashboard.");
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,14 @@ export function registerBillingTools(server) {
4
4
  // Get billing info
5
5
  server.registerTool("neuron_get_billing", {
6
6
  title: "Get Billing Info",
7
- description: "Get the current billing information, subscription status, and usage details for the organization",
7
+ description: "Retrieve the current billing information, subscription plan, and usage details for the organization.",
8
8
  inputSchema: z.object({}),
9
- annotations: { readOnlyHint: true },
9
+ annotations: {
10
+ readOnlyHint: true,
11
+ destructiveHint: false,
12
+ idempotentHint: true,
13
+ openWorldHint: false,
14
+ },
10
15
  }, async () => {
11
16
  try {
12
17
  const result = await api("GET", "/billing");
@@ -19,10 +24,16 @@ export function registerBillingTools(server) {
19
24
  // Checkout
20
25
  server.registerTool("neuron_checkout", {
21
26
  title: "Checkout Subscription",
22
- description: "Start a checkout session for a subscription plan. Returns a checkout URL or confirmation.",
27
+ description: "Initiate a checkout session for a subscription plan upgrade. Returns a checkout URL or confirmation to complete the purchase.",
23
28
  inputSchema: z.object({
24
- plan: z.enum(["pro", "business"]).describe("Subscription plan to purchase"),
29
+ plan: z.enum(["pro", "business"]).describe("Subscription plan to purchase: 'pro' or 'business'"),
25
30
  }),
31
+ annotations: {
32
+ readOnlyHint: false,
33
+ destructiveHint: false,
34
+ idempotentHint: false,
35
+ openWorldHint: false,
36
+ },
26
37
  }, async (params) => {
27
38
  try {
28
39
  const result = await api("POST", "/billing/checkout", { plan: params.plan });
@@ -35,9 +46,14 @@ export function registerBillingTools(server) {
35
46
  // Cancel subscription
36
47
  server.registerTool("neuron_cancel_subscription", {
37
48
  title: "Cancel Subscription",
38
- description: "Cancel the current active subscription. The subscription will remain active until the end of the billing period.",
49
+ description: "Cancel the current active subscription. Access continues until the end of the current billing period.",
39
50
  inputSchema: z.object({}),
40
- annotations: { destructiveHint: true },
51
+ annotations: {
52
+ readOnlyHint: false,
53
+ destructiveHint: true,
54
+ idempotentHint: true,
55
+ openWorldHint: false,
56
+ },
41
57
  }, async () => {
42
58
  try {
43
59
  const result = await api("POST", "/billing/cancel");
@@ -1 +1 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACpC,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,WAAW;IACX,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2FAA2F;QACxG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC5E,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,kHAAkH;QAC/H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACvC,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACpD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,sGAAsG;QACnH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC5C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,WAAW;IACX,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,+HAA+H;QAC5I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACjG,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACpD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,44 +1,73 @@
1
1
  import { z } from "zod";
2
2
  import { api, jsonResult, errorResult } from "../client.js";
3
+ /**
4
+ * Block content vocabulary. The backend (backend/src/lib/blog-blocks.ts) is the
5
+ * authoritative validator — it rejects malformed blocks with a 400 — so here we
6
+ * keep a permissive shape and describe the vocabulary richly for the model.
7
+ */
8
+ const BLOCKS_SCHEMA = z.array(z.record(z.any()));
9
+ const BLOCKS_DESCRIPTION = [
10
+ "Structured layout blocks, rendered top-to-bottom as styled components. Each block is an object with a `type` and its fields:",
11
+ "- hero: { type:'hero', title, kicker?, subtitle?, imageUrl?, align?:'left'|'center', ctaLabel?, ctaHref? }",
12
+ "- richText: { type:'richText', markdown } (full GFM markdown)",
13
+ "- callout: { type:'callout', variant:'info'|'tip'|'warning'|'success'|'danger', title?, markdown }",
14
+ "- columns: { type:'columns', ratio?:'1-1'|'1-2'|'2-1', columns:[ [block,...], [block,...] ] } (exactly 2 columns of leaf blocks; no nested columns)",
15
+ "- codeCard: { type:'codeCard', language?, filename?, code }",
16
+ "- imageGrid: { type:'imageGrid', columns?:1|2|3|4, images:[{ url, alt?, caption? }] }",
17
+ "- quote: { type:'quote', quote, attribution? }",
18
+ "- embed: { type:'embed', provider:'youtube'|'loom'|'vimeo'|'generic', url, title? } (paste the normal share URL)",
19
+ "- cta: { type:'cta', headline, body?, buttonLabel, buttonHref, secondaryLabel?, secondaryHref?, accent?:'#hex' }",
20
+ "- divider: { type:'divider' }",
21
+ "- html: { type:'html', html, sandboxed?, height? } (custom HTML. Default is sanitized + indexable, no scripts. Set sandboxed:true to run scripts inside an isolated iframe — NOT indexed by search.)",
22
+ "Build magazine-style posts by composing these, e.g. a hero, then richText, then a columns block, a callout, a codeCard, and a closing cta.",
23
+ ].join("\n");
3
24
  export function registerBlogTools(server) {
4
25
  // Create blog post
5
26
  server.registerTool("neuron_create_blog_post", {
6
27
  title: "Create Blog Post",
7
- description: "Create a new blog post (draft or published)",
28
+ description: "Create a new blog post. Body can be authored two ways: (1) `content` as markdown (GFM) + inline raw HTML, or (2) `blocks` — a structured array of typed layout blocks rendered as styled components (heroes, columns, callouts, code cards, embeds, CTAs, sanitized custom HTML). Prefer `blocks` for rich, magazine-style layouts; use `content` for simple prose. If both are given, `blocks` renders and `content` is kept as a fallback.",
8
29
  inputSchema: z.object({
9
- title: z.string().describe("Post title (max 500 chars)"),
10
- content: z.string().describe("Post content (markdown)"),
11
- excerpt: z.string().optional().describe("Short summary (optional)"),
30
+ title: z.string().describe("Title of the blog post (max 500 characters)"),
31
+ content: z.string().optional().describe("Optional markdown body (GFM + inline raw HTML). Used when `blocks` is not provided, and kept as a fallback when it is. Rich options: ![alt](url), <video src controls>, <iframe> embeds (16:9), <details><summary>, <mark>, <kbd>."),
32
+ blocks: BLOCKS_SCHEMA.optional().describe(BLOCKS_DESCRIPTION),
33
+ excerpt: z.string().optional().describe("Short summary or preview text for the blog post"),
12
34
  authorType: z
13
35
  .enum(["user", "organization"])
14
- .describe("Author type"),
15
- coverImageUrl: z.string().optional().describe("Cover image URL (optional)"),
36
+ .describe("Whether the post is authored by an individual user or the organization"),
37
+ coverImageUrl: z.string().optional().describe("URL of the cover image displayed at the top of the post"),
16
38
  tags: z
17
39
  .array(z.string())
18
40
  .optional()
19
- .describe("Tag names or slugs"),
41
+ .describe("List of tag names or slugs to categorize the post"),
20
42
  status: z
21
43
  .enum(["draft", "published"])
22
44
  .default("draft")
23
- .describe("Post status"),
45
+ .describe("Initial publication status of the post (default: 'draft')"),
24
46
  seoTitle: z
25
47
  .string()
26
48
  .optional()
27
- .describe("SEO title override (optional)"),
49
+ .describe("Custom SEO title override for search engine results"),
28
50
  seoDescription: z
29
51
  .string()
30
52
  .optional()
31
- .describe("Meta description (optional)"),
53
+ .describe("Meta description for search engine result snippets"),
32
54
  seoKeywords: z
33
55
  .array(z.string())
34
56
  .optional()
35
- .describe("SEO keywords (optional)"),
57
+ .describe("List of SEO keywords for search engine optimization"),
36
58
  }),
59
+ annotations: {
60
+ readOnlyHint: false,
61
+ destructiveHint: false,
62
+ idempotentHint: false,
63
+ openWorldHint: false,
64
+ },
37
65
  }, async (params) => {
38
66
  try {
39
67
  const result = await api("POST", "blog/posts", {
40
68
  title: params.title,
41
69
  content: params.content,
70
+ blocks: params.blocks,
42
71
  excerpt: params.excerpt,
43
72
  authorType: params.authorType,
44
73
  coverImageUrl: params.coverImageUrl,
@@ -57,24 +86,30 @@ export function registerBlogTools(server) {
57
86
  // List blog posts
58
87
  server.registerTool("neuron_list_blog_posts", {
59
88
  title: "List Blog Posts",
60
- description: "List blog posts with filters",
89
+ description: "Retrieve a paginated list of blog posts with optional filtering by status, author type, author ID, or tag.",
61
90
  inputSchema: z.object({
62
91
  status: z
63
92
  .enum(["draft", "published", "hidden"])
64
93
  .optional()
65
- .describe("Filter by status"),
94
+ .describe("Filter posts by publication status"),
66
95
  authorType: z
67
96
  .enum(["user", "organization"])
68
97
  .optional()
69
- .describe("Filter by author type"),
98
+ .describe("Filter posts by author type"),
70
99
  authorId: z
71
100
  .string()
72
101
  .optional()
73
- .describe("Filter by author UUID"),
74
- tag: z.string().optional().describe("Filter by tag slug"),
75
- page: z.number().default(1).describe("Page number"),
76
- limit: z.number().default(20).describe("Results per page"),
102
+ .describe("Filter posts by author identifier (UUID)"),
103
+ tag: z.string().optional().describe("Filter posts by tag slug (e.g., 'announcements')"),
104
+ page: z.number().default(1).describe("Page number for pagination (default: 1)"),
105
+ limit: z.number().default(20).describe("Number of results per page (default: 20)"),
77
106
  }),
107
+ annotations: {
108
+ readOnlyHint: true,
109
+ destructiveHint: false,
110
+ idempotentHint: true,
111
+ openWorldHint: false,
112
+ },
78
113
  }, async (params) => {
79
114
  try {
80
115
  const result = await api("GET", "blog/posts", undefined, {
@@ -94,10 +129,16 @@ export function registerBlogTools(server) {
94
129
  // Get blog post
95
130
  server.registerTool("neuron_get_blog_post", {
96
131
  title: "Get Blog Post",
97
- description: "Get a blog post by slug",
132
+ description: "Retrieve a single blog post by its URL-friendly slug, including full content and metadata.",
98
133
  inputSchema: z.object({
99
- slug: z.string().describe("Post slug"),
134
+ slug: z.string().describe("URL-friendly slug of the blog post (e.g., 'my-first-post')"),
100
135
  }),
136
+ annotations: {
137
+ readOnlyHint: true,
138
+ destructiveHint: false,
139
+ idempotentHint: true,
140
+ openWorldHint: false,
141
+ },
101
142
  }, async (params) => {
102
143
  try {
103
144
  const result = await api("GET", `blog/posts/${params.slug}`);
@@ -110,24 +151,35 @@ export function registerBlogTools(server) {
110
151
  // Update blog post
111
152
  server.registerTool("neuron_update_blog_post", {
112
153
  title: "Update Blog Post",
113
- description: "Update an existing blog post",
154
+ description: "Update an existing blog post's content, metadata, status, or SEO fields. Only provided fields are changed.",
114
155
  inputSchema: z.object({
115
- id: z.string().describe("Post UUID"),
116
- title: z.string().optional().describe("Post title"),
117
- content: z.string().optional().describe("Post content"),
118
- excerpt: z.string().optional().describe("Short summary"),
119
- coverImageUrl: z.string().optional().describe("Cover image URL"),
156
+ id: z.string().describe("Unique identifier (UUID) of the blog post to update"),
157
+ title: z.string().optional().describe("New title for the blog post"),
158
+ content: z.string().optional().describe("New markdown body (GFM + inline raw HTML). Supports ![alt](url), <video>, <iframe> embeds, <details>/<summary>, <mark>, <kbd>."),
159
+ blocks: BLOCKS_SCHEMA.nullable().optional().describe(`${BLOCKS_DESCRIPTION}\n\nPass null to clear blocks and revert to the markdown \`content\`. Omit to leave existing blocks unchanged.`),
160
+ excerpt: z.string().optional().describe("New short summary or preview text"),
161
+ tags: z
162
+ .array(z.string())
163
+ .optional()
164
+ .describe("Replace the post's tags with this list of tag names (created if missing). Empty array clears all tags; omit to leave tags unchanged."),
165
+ coverImageUrl: z.string().optional().describe("New URL for the cover image"),
120
166
  status: z
121
167
  .enum(["draft", "published", "hidden"])
122
168
  .optional()
123
- .describe("Post status"),
124
- seoTitle: z.string().optional().describe("SEO title"),
125
- seoDescription: z.string().optional().describe("Meta description"),
169
+ .describe("New publication status for the post"),
170
+ seoTitle: z.string().optional().describe("New custom SEO title override"),
171
+ seoDescription: z.string().optional().describe("New meta description for search engines"),
126
172
  seoKeywords: z
127
173
  .array(z.string())
128
174
  .optional()
129
- .describe("SEO keywords"),
175
+ .describe("New list of SEO keywords"),
130
176
  }),
177
+ annotations: {
178
+ readOnlyHint: false,
179
+ destructiveHint: false,
180
+ idempotentHint: true,
181
+ openWorldHint: false,
182
+ },
131
183
  }, async (params) => {
132
184
  try {
133
185
  const { id, ...body } = params;
@@ -141,10 +193,16 @@ export function registerBlogTools(server) {
141
193
  // Delete blog post
142
194
  server.registerTool("neuron_delete_blog_post", {
143
195
  title: "Delete Blog Post",
144
- description: "Delete a blog post",
196
+ description: "Permanently delete a blog post by its ID. This action cannot be undone.",
145
197
  inputSchema: z.object({
146
- id: z.string().describe("Post UUID"),
198
+ id: z.string().describe("Unique identifier (UUID) of the blog post to delete"),
147
199
  }),
200
+ annotations: {
201
+ readOnlyHint: false,
202
+ destructiveHint: true,
203
+ idempotentHint: true,
204
+ openWorldHint: false,
205
+ },
148
206
  }, async (params) => {
149
207
  try {
150
208
  await api("DELETE", `blog/posts/${params.id}`);
@@ -157,10 +215,16 @@ export function registerBlogTools(server) {
157
215
  // Publish post
158
216
  server.registerTool("neuron_publish_blog_post", {
159
217
  title: "Publish Blog Post",
160
- description: "Publish a draft post",
218
+ description: "Publish a blog post, making it publicly visible. The post must be in 'draft' status.",
161
219
  inputSchema: z.object({
162
- id: z.string().describe("Post UUID"),
220
+ id: z.string().describe("Unique identifier (UUID) of the blog post to publish"),
163
221
  }),
222
+ annotations: {
223
+ readOnlyHint: false,
224
+ destructiveHint: false,
225
+ idempotentHint: false,
226
+ openWorldHint: false,
227
+ },
164
228
  }, async (params) => {
165
229
  try {
166
230
  const result = await api("POST", `blog/posts/${params.id}/publish`);
@@ -1 +1 @@
1
- {"version":3,"file":"blog.js","sourceRoot":"","sources":["../../src/tools/blog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blog.js","sourceRoot":"","sources":["../../src/tools/blog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,8HAA8H;IAC9H,4GAA4G;IAC5G,gEAAgE;IAChE,oGAAoG;IACpG,sJAAsJ;IACtJ,6DAA6D;IAC7D,uFAAuF;IACvF,gDAAgD;IAChD,mHAAmH;IACnH,kHAAkH;IAClH,+BAA+B;IAC/B,uMAAuM;IACvM,4IAA4I;CAC7I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,8aAA8a;QAC3b,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oOAAoO,CAAC;YAC7Q,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;YAC1F,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;iBAC9B,QAAQ,CAAC,wEAAwE,CAAC;YACrF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACxG,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;iBAC5B,OAAO,CAAC,OAAO,CAAC;iBAChB,QAAQ,CAAC,2DAA2D,CAAC;YACxE,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACjE,WAAW,EAAE,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;SACnE,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE;gBAC7C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,4GAA4G;QACzH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;iBACtC,QAAQ,EAAE;iBACV,QAAQ,CAAC,oCAAoC,CAAC;YACjD,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;iBAC9B,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;YACvD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACvF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACnF,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE;gBACvD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,4FAA4F;QACzG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SACxF,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,4GAA4G;QACzH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;YAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACpE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gIAAgI,CAAC;YACzK,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,kBAAkB,gHAAgH,CAAC;YAC3L,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC5E,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,sIAAsI,CAAC;YACnJ,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC5E,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;iBACtC,QAAQ,EAAE;iBACV,QAAQ,CAAC,qCAAqC,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACzE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACzF,WAAW,EAAE,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,0BAA0B,CAAC;SACxC,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SAC/E,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,QAAQ,EAAE,cAAc,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,EAAE,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,sFAAsF;QACnG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SAChF,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;YACpE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}