@mailshot/mcp 0.2.3 → 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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-present Meiring de Wet
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/config.d.ts CHANGED
@@ -3,6 +3,8 @@ export interface McpConfig {
3
3
  tableName: string;
4
4
  eventsTableName: string;
5
5
  templateBucketName: string;
6
+ eventBusName: string;
7
+ stackName?: string;
6
8
  }
7
9
  export declare function resolveConfig(): McpConfig;
8
10
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA8BD,wBAAgB,aAAa,IAAI,SAAS,CAgBzC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,wBAAgB,aAAa,IAAI,SAAS,CAkBzC"}
package/dist/config.js CHANGED
@@ -74,10 +74,12 @@ function resolveConfig() {
74
74
  const tableName = process.env.TABLE_NAME;
75
75
  const eventsTableName = process.env.EVENTS_TABLE_NAME;
76
76
  const templateBucketName = process.env.TEMPLATE_BUCKET_NAME;
77
- if (!tableName || !eventsTableName || !templateBucketName) {
78
- throw new Error("Missing required env vars: TABLE_NAME, EVENTS_TABLE_NAME, TEMPLATE_BUCKET_NAME. " +
77
+ const eventBusName = process.env.EVENT_BUS_NAME;
78
+ const stackName = process.env.STACK_NAME || undefined;
79
+ if (!tableName || !eventsTableName || !templateBucketName || !eventBusName) {
80
+ throw new Error("Missing required env vars: TABLE_NAME, EVENTS_TABLE_NAME, TEMPLATE_BUCKET_NAME, EVENT_BUS_NAME. " +
79
81
  "Ensure .env exists in the repo root or set them in the environment.");
80
82
  }
81
- return { region, tableName, eventsTableName, templateBucketName };
83
+ return { region, tableName, eventsTableName, templateBucketName, eventBusName, stackName };
82
84
  }
83
85
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,sCAgBC;AAtDD,4CAA8B;AAC9B,gDAAkC;AASlC,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACpC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,WAAW,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAE5D,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,kFAAkF;YAChF,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,sCAkBC;AA1DD,4CAA8B;AAC9B,gDAAkC;AAWlC,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IACpC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,WAAW,EAAE,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACtD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC;IAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,kGAAkG;YAChG,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC7F,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ const suppression_js_1 = require("./tools/suppression.js");
11
11
  const engagement_js_1 = require("./tools/engagement.js");
12
12
  const templates_js_1 = require("./tools/templates.js");
13
13
  const system_js_1 = require("./tools/system.js");
14
+ const sequences_js_1 = require("./tools/sequences.js");
14
15
  const config = (0, config_js_1.resolveConfig)();
15
16
  const server = new mcp_js_1.McpServer({
16
17
  name: "mailshot",
@@ -200,6 +201,31 @@ server.registerTool("validate_template", {
200
201
  },
201
202
  ],
202
203
  }));
204
+ // ── Sequences ─────────────────────────────────────────────────────────────
205
+ server.registerTool("list_sequences", {
206
+ description: "List deployed sequences by discovering S3 template prefixes and Step Functions state machines",
207
+ inputSchema: {},
208
+ }, async () => ({
209
+ content: [
210
+ {
211
+ type: "text",
212
+ text: JSON.stringify(await (0, sequences_js_1.listSequences)(config), null, 2),
213
+ },
214
+ ],
215
+ }));
216
+ server.registerTool("export_sequence", {
217
+ description: "Export a deployed sequence — reverse-parses ASL to SequenceDefinition, fetches templates and EventBridge trigger config",
218
+ inputSchema: {
219
+ sequenceId: zod_1.z.string().describe("The sequence ID to export (kebab-case)"),
220
+ },
221
+ }, async ({ sequenceId }) => ({
222
+ content: [
223
+ {
224
+ type: "text",
225
+ text: JSON.stringify(await (0, sequences_js_1.exportSequence)(config, sequenceId), null, 2),
226
+ },
227
+ ],
228
+ }));
203
229
  // ── System health ──────────────────────────────────────────────────────────
204
230
  server.registerTool("get_failed_executions", {
205
231
  description: "Get recent Step Functions execution failures",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { SequenceDefinition } from "@mailshot/shared";
2
+ import type { McpConfig } from "../config.js";
3
+ export interface SequenceInfo {
4
+ sequenceId: string;
5
+ stateMachineArn?: string;
6
+ templateKeys: string[];
7
+ }
8
+ export declare function listSequences(config: McpConfig): Promise<SequenceInfo[]>;
9
+ export interface ExportedSequence {
10
+ definition: SequenceDefinition;
11
+ templates: {
12
+ key: string;
13
+ html: string;
14
+ }[];
15
+ warnings: string[];
16
+ }
17
+ export declare function exportSequence(config: McpConfig, sequenceId: string): Promise<ExportedSequence>;
18
+ //# sourceMappingURL=sequences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequences.d.ts","sourceRoot":"","sources":["../../src/tools/sequences.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwP9C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4D9E;AAID,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAwO3B"}
@@ -0,0 +1,440 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listSequences = listSequences;
4
+ exports.exportSequence = exportSequence;
5
+ const client_s3_1 = require("@aws-sdk/client-s3");
6
+ const client_sfn_1 = require("@aws-sdk/client-sfn");
7
+ const client_eventbridge_1 = require("@aws-sdk/client-eventbridge");
8
+ let s3;
9
+ let sfn;
10
+ let eb;
11
+ function getS3(region) {
12
+ if (!s3)
13
+ s3 = new client_s3_1.S3Client({ region });
14
+ return s3;
15
+ }
16
+ function getSfn(region) {
17
+ if (!sfn)
18
+ sfn = new client_sfn_1.SFNClient({ region });
19
+ return sfn;
20
+ }
21
+ function getEb(region) {
22
+ if (!eb)
23
+ eb = new client_eventbridge_1.EventBridgeClient({ region });
24
+ return eb;
25
+ }
26
+ // ── Helpers ──────────────────────────────────────────────────────────────────
27
+ function pascalCase(id) {
28
+ return id
29
+ .split(/[-_]/)
30
+ .map((s) => s.charAt(0).toUpperCase() + s.slice(1))
31
+ .join("");
32
+ }
33
+ function unpascalCase(pascal) {
34
+ return pascal
35
+ .replace(/([A-Z])/g, (match, _p1, offset) => (offset === 0 ? match : `-${match}`))
36
+ .toLowerCase();
37
+ }
38
+ function secondsToDuration(secs) {
39
+ if (secs % 86400 === 0)
40
+ return { days: secs / 86400 };
41
+ if (secs % 3600 === 0)
42
+ return { hours: secs / 3600 };
43
+ if (secs % 60 === 0)
44
+ return { minutes: secs / 60 };
45
+ const days = Math.floor(secs / 86400);
46
+ const remainder = secs % 86400;
47
+ const hours = Math.floor(remainder / 3600);
48
+ const minutes = Math.floor((remainder % 3600) / 60);
49
+ const result = {};
50
+ if (days > 0)
51
+ result.days = days;
52
+ if (hours > 0)
53
+ result.hours = hours;
54
+ if (minutes > 0)
55
+ result.minutes = minutes;
56
+ return result;
57
+ }
58
+ // ── ASL Reverse Parser ───────────────────────────────────────────────────────
59
+ /* eslint-disable @typescript-eslint/no-explicit-any */
60
+ function parseSteps(states, currentStateName, prefix, stopAtState) {
61
+ const steps = [];
62
+ let current = currentStateName;
63
+ while (current && current !== stopAtState) {
64
+ const state = states[current];
65
+ if (!state)
66
+ break;
67
+ const name = current;
68
+ // Send step: {Prefix}-Send{N}
69
+ const sendMatch = name.match(new RegExp(`^${escapeRegex(prefix)}-Send(\\d+)$`));
70
+ if (sendMatch) {
71
+ const params = state.Parameters ?? {};
72
+ steps.push({
73
+ type: "send",
74
+ templateKey: params.templateKey ?? params["templateKey.$"] ?? "",
75
+ subject: params.subject ?? params["subject.$"] ?? "",
76
+ });
77
+ current = state.Next;
78
+ continue;
79
+ }
80
+ // Wait step: {Prefix}-Wait{N}
81
+ const waitMatch = name.match(new RegExp(`^${escapeRegex(prefix)}-Wait(\\d+)$`));
82
+ if (waitMatch) {
83
+ const secs = state.Seconds ?? 0;
84
+ steps.push({ type: "wait", ...secondsToDuration(secs) });
85
+ current = state.Next;
86
+ continue;
87
+ }
88
+ // Condition step: {Prefix}-Check{N} → Cond{N} → branches → CondMerge{N}
89
+ const checkMatch = name.match(new RegExp(`^${escapeRegex(prefix)}-Check(\\d+)$`));
90
+ if (checkMatch) {
91
+ const n = checkMatch[1];
92
+ const params = state.Parameters ?? {};
93
+ const condChoiceName = state.Next;
94
+ const condChoice = states[condChoiceName];
95
+ const mergeStateName = `${prefix}-CondMerge${n}`;
96
+ // Extract check parameters
97
+ const check = params.check ?? params["check.$"] ?? "subscriber_field_exists";
98
+ const field = params.field ?? params["field.$"] ?? undefined;
99
+ const value = params.value ?? params["value.$"] ?? undefined;
100
+ const templateKey = params.templateKey ?? params["templateKey.$"] ?? undefined;
101
+ // Parse branches
102
+ let thenTarget;
103
+ const elseTarget = condChoice?.Default;
104
+ if (condChoice?.Choices) {
105
+ for (const rule of condChoice.Choices) {
106
+ if (rule.BooleanEquals === true) {
107
+ thenTarget = rule.Next;
108
+ }
109
+ }
110
+ }
111
+ const thenSteps = parseSteps(states, thenTarget, prefix, mergeStateName);
112
+ const elseSteps = parseSteps(states, elseTarget, prefix, mergeStateName);
113
+ const step = {
114
+ type: "condition",
115
+ check,
116
+ then: thenSteps,
117
+ };
118
+ if (field !== undefined)
119
+ step.field = field;
120
+ if (value !== undefined)
121
+ step.value = value;
122
+ if (templateKey !== undefined)
123
+ step.templateKey = templateKey;
124
+ if (elseSteps.length > 0)
125
+ step.else = elseSteps;
126
+ steps.push(step);
127
+ current = states[mergeStateName]?.Next;
128
+ continue;
129
+ }
130
+ // Choice step: {Prefix}-Choice{N} → branches → ChoiceMerge{N}
131
+ const choiceMatch = name.match(new RegExp(`^${escapeRegex(prefix)}-Choice(\\d+)$`));
132
+ if (choiceMatch) {
133
+ const n = choiceMatch[1];
134
+ const mergeStateName = `${prefix}-ChoiceMerge${n}`;
135
+ // Extract field from first choice rule's Variable
136
+ const choices = state.Choices ?? [];
137
+ const field = choices[0]?.Variable ?? "";
138
+ const branches = [];
139
+ for (const rule of choices) {
140
+ if (rule.StringEquals !== undefined) {
141
+ const branchSteps = parseSteps(states, rule.Next, prefix, mergeStateName);
142
+ branches.push({ value: rule.StringEquals, steps: branchSteps });
143
+ }
144
+ }
145
+ // Default branch
146
+ let defaultSteps;
147
+ if (state.Default) {
148
+ const defaultParsed = parseSteps(states, state.Default, prefix, mergeStateName);
149
+ if (defaultParsed.length > 0) {
150
+ defaultSteps = defaultParsed;
151
+ }
152
+ }
153
+ const step = {
154
+ type: "choice",
155
+ field,
156
+ branches,
157
+ };
158
+ if (defaultSteps)
159
+ step.default = defaultSteps;
160
+ steps.push(step);
161
+ current = states[mergeStateName]?.Next;
162
+ continue;
163
+ }
164
+ // Structural states — skip/break
165
+ if (name.includes("Complete") ||
166
+ name.includes("Done") ||
167
+ name.includes("Merge") ||
168
+ name.includes("Pass")) {
169
+ break;
170
+ }
171
+ // Unknown state — skip
172
+ current = state.Next;
173
+ }
174
+ return steps;
175
+ }
176
+ function escapeRegex(str) {
177
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
178
+ }
179
+ /* eslint-enable @typescript-eslint/no-explicit-any */
180
+ // ── EventBridge Parsing ──────────────────────────────────────────────────────
181
+ function parseInputTransformer(inputPathsMap, inputTemplate) {
182
+ if (!inputPathsMap || !inputTemplate)
183
+ return undefined;
184
+ try {
185
+ // CDK generates InputTemplate as a JSON string with <varName> placeholders
186
+ // Parse the template to find subscriber field mappings
187
+ // The template looks like: {"subscriber":{"email":<email>,"firstName":<firstName>,...}}
188
+ const reverseMap = {};
189
+ for (const [varName, jsonPath] of Object.entries(inputPathsMap)) {
190
+ reverseMap[varName] = jsonPath;
191
+ }
192
+ // Find which variables map to subscriber fields by parsing the template
193
+ const mapping = {
194
+ email: "$.detail.email",
195
+ firstName: "$.detail.firstName",
196
+ };
197
+ // Try to find email mapping
198
+ const emailMatch = inputTemplate.match(/"email"\s*:\s*<([^>]+)>/);
199
+ if (emailMatch && reverseMap[emailMatch[1]]) {
200
+ mapping.email = reverseMap[emailMatch[1]];
201
+ }
202
+ // Try to find firstName mapping
203
+ const firstNameMatch = inputTemplate.match(/"firstName"\s*:\s*<([^>]+)>/);
204
+ if (firstNameMatch && reverseMap[firstNameMatch[1]]) {
205
+ mapping.firstName = reverseMap[firstNameMatch[1]];
206
+ }
207
+ // Try to find attributes mapping
208
+ const attributesMatch = inputTemplate.match(/"attributes"\s*:\s*<([^>]+)>/);
209
+ if (attributesMatch && reverseMap[attributesMatch[1]]) {
210
+ mapping.attributes = reverseMap[attributesMatch[1]];
211
+ }
212
+ return mapping;
213
+ }
214
+ catch {
215
+ return undefined;
216
+ }
217
+ }
218
+ async function listSequences(config) {
219
+ const s3Client = getS3(config.region);
220
+ const sfnClient = getSfn(config.region);
221
+ // 1. S3 bucket prefixes → sequence IDs
222
+ const s3Result = await s3Client.send(new client_s3_1.ListObjectsV2Command({
223
+ Bucket: config.templateBucketName,
224
+ Delimiter: "/",
225
+ }));
226
+ const s3Sequences = new Map();
227
+ for (const prefix of s3Result.CommonPrefixes ?? []) {
228
+ const sequenceId = prefix.Prefix?.replace(/\/$/, "");
229
+ if (sequenceId) {
230
+ s3Sequences.set(sequenceId, []);
231
+ }
232
+ }
233
+ // Get template keys per sequence
234
+ for (const sequenceId of s3Sequences.keys()) {
235
+ const templatesResult = await s3Client.send(new client_s3_1.ListObjectsV2Command({
236
+ Bucket: config.templateBucketName,
237
+ Prefix: `${sequenceId}/`,
238
+ }));
239
+ const keys = (templatesResult.Contents ?? [])
240
+ .map((obj) => obj.Key)
241
+ .filter((k) => k.endsWith(".html"))
242
+ .map((k) => k.replace(/\.html$/, ""));
243
+ s3Sequences.set(sequenceId, keys);
244
+ }
245
+ // 2. List state machines → cross-reference with S3 prefixes
246
+ const smResult = await sfnClient.send(new client_sfn_1.ListStateMachinesCommand({}));
247
+ const smMap = new Map();
248
+ for (const sm of smResult.stateMachines ?? []) {
249
+ if (sm.name?.endsWith("Sequence")) {
250
+ // Reverse PascalCase → kebab-case
251
+ const pascal = sm.name.replace(/Sequence$/, "");
252
+ const kebab = unpascalCase(pascal);
253
+ smMap.set(kebab, sm.stateMachineArn);
254
+ }
255
+ }
256
+ // 3. Combine results
257
+ const allIds = new Set([...s3Sequences.keys(), ...smMap.keys()]);
258
+ const results = [];
259
+ for (const sequenceId of allIds) {
260
+ results.push({
261
+ sequenceId,
262
+ stateMachineArn: smMap.get(sequenceId),
263
+ templateKeys: s3Sequences.get(sequenceId) ?? [],
264
+ });
265
+ }
266
+ return results.sort((a, b) => a.sequenceId.localeCompare(b.sequenceId));
267
+ }
268
+ async function exportSequence(config, sequenceId) {
269
+ const sfnClient = getSfn(config.region);
270
+ const s3Client = getS3(config.region);
271
+ const ebClient = getEb(config.region);
272
+ const warnings = [];
273
+ // 1. Find and describe state machine
274
+ const prefix = pascalCase(sequenceId);
275
+ const smName = `${prefix}Sequence`;
276
+ const smList = await sfnClient.send(new client_sfn_1.ListStateMachinesCommand({}));
277
+ const smEntry = (smList.stateMachines ?? []).find((sm) => sm.name === smName);
278
+ if (!smEntry) {
279
+ throw new Error(`State machine '${smName}' not found. Is the sequence deployed?`);
280
+ }
281
+ const smDetail = await sfnClient.send(new client_sfn_1.DescribeStateMachineCommand({ stateMachineArn: smEntry.stateMachineArn }));
282
+ const asl = JSON.parse(smDetail.definition);
283
+ // 2. Extract timeoutMinutes from ASL TimeoutSeconds
284
+ const timeoutSeconds = asl.TimeoutSeconds;
285
+ const timeoutMinutes = timeoutSeconds ? Math.round(timeoutSeconds / 60) : 43200;
286
+ // 3. Parse ASL → steps
287
+ // Find the first step after Register
288
+ const registerState = asl.States[`${prefix}-Register`];
289
+ const firstStepName = registerState?.Next;
290
+ const steps = parseSteps(asl.States, firstStepName, prefix);
291
+ // 4. Get trigger config from EventBridge
292
+ let detailType = `${sequenceId}.trigger`;
293
+ let subscriberMapping = {
294
+ email: "$.detail.email",
295
+ firstName: "$.detail.firstName",
296
+ attributes: "$.detail",
297
+ };
298
+ try {
299
+ const rulesResult = await ebClient.send(new client_eventbridge_1.ListRulesCommand({
300
+ EventBusName: config.eventBusName,
301
+ NamePrefix: `${sequenceId}-`,
302
+ }));
303
+ // Find the trigger rule (targets Step Functions, not Lambda)
304
+ for (const rule of rulesResult.Rules ?? []) {
305
+ const targetsResult = await ebClient.send(new client_eventbridge_1.ListTargetsByRuleCommand({
306
+ Rule: rule.Name,
307
+ EventBusName: config.eventBusName,
308
+ }));
309
+ const sfnTarget = (targetsResult.Targets ?? []).find((t) => t.Arn?.includes(":stateMachine:"));
310
+ if (sfnTarget) {
311
+ // This is the sequence trigger rule
312
+ const ruleDetail = await ebClient.send(new client_eventbridge_1.DescribeRuleCommand({
313
+ Name: rule.Name,
314
+ EventBusName: config.eventBusName,
315
+ }));
316
+ // Extract detailType from event pattern
317
+ const pattern = ruleDetail.EventPattern ? JSON.parse(ruleDetail.EventPattern) : {};
318
+ if (pattern["detail-type"]?.[0]) {
319
+ detailType = pattern["detail-type"][0];
320
+ }
321
+ // Extract subscriber mapping from input transformer
322
+ const inputTransformer = sfnTarget.InputTransformer;
323
+ if (inputTransformer) {
324
+ const parsed = parseInputTransformer(inputTransformer.InputPathsMap, inputTransformer.InputTemplate);
325
+ if (parsed) {
326
+ subscriberMapping = parsed;
327
+ }
328
+ else {
329
+ warnings.push("Could not fully parse EventBridge input transformer — using default subscriber mapping");
330
+ }
331
+ }
332
+ break;
333
+ }
334
+ }
335
+ }
336
+ catch (err) {
337
+ warnings.push(`Could not read EventBridge rules: ${err instanceof Error ? err.message : String(err)}. Using default trigger config.`);
338
+ }
339
+ // 5. Get fire-and-forget events
340
+ const events = [];
341
+ try {
342
+ const rulesResult = await ebClient.send(new client_eventbridge_1.ListRulesCommand({
343
+ EventBusName: config.eventBusName,
344
+ NamePrefix: `${sequenceId}-`,
345
+ }));
346
+ for (const rule of rulesResult.Rules ?? []) {
347
+ const targetsResult = await ebClient.send(new client_eventbridge_1.ListTargetsByRuleCommand({
348
+ Rule: rule.Name,
349
+ EventBusName: config.eventBusName,
350
+ }));
351
+ const lambdaTarget = (targetsResult.Targets ?? []).find((t) => t.Arn?.includes(":function:") && !t.Arn?.includes(":stateMachine:"));
352
+ if (lambdaTarget) {
353
+ // This is a fire-and-forget event rule
354
+ const ruleDetail = await ebClient.send(new client_eventbridge_1.DescribeRuleCommand({
355
+ Name: rule.Name,
356
+ EventBusName: config.eventBusName,
357
+ }));
358
+ const pattern = ruleDetail.EventPattern ? JSON.parse(ruleDetail.EventPattern) : {};
359
+ const evtDetailType = pattern["detail-type"]?.[0];
360
+ // Extract templateKey and subject from input transformer
361
+ const inputTransformer = lambdaTarget.InputTransformer;
362
+ let templateKey = "";
363
+ let subject = "";
364
+ if (inputTransformer?.InputTemplate) {
365
+ const template = inputTransformer.InputTemplate;
366
+ const templateKeyMatch = template.match(/"templateKey"\s*:\s*"([^"]+)"/);
367
+ if (templateKeyMatch)
368
+ templateKey = templateKeyMatch[1];
369
+ const subjectMatch = template.match(/"subject"\s*:\s*"([^"]+)"/);
370
+ if (subjectMatch)
371
+ subject = subjectMatch[1];
372
+ }
373
+ if (evtDetailType && templateKey) {
374
+ const evt = {
375
+ detailType: evtDetailType,
376
+ templateKey,
377
+ subject,
378
+ };
379
+ // Parse subscriber mapping if different from sequence trigger
380
+ if (inputTransformer) {
381
+ const evtMapping = parseInputTransformer(inputTransformer.InputPathsMap, inputTransformer.InputTemplate);
382
+ if (evtMapping &&
383
+ (evtMapping.email !== subscriberMapping.email ||
384
+ evtMapping.firstName !== subscriberMapping.firstName ||
385
+ evtMapping.attributes !== subscriberMapping.attributes)) {
386
+ evt.subscriberMapping = evtMapping;
387
+ }
388
+ }
389
+ events.push(evt);
390
+ }
391
+ }
392
+ }
393
+ }
394
+ catch (err) {
395
+ warnings.push(`Could not read fire-and-forget event rules: ${err instanceof Error ? err.message : String(err)}`);
396
+ }
397
+ // 6. Fetch templates from S3
398
+ const templates = [];
399
+ try {
400
+ const templatesResult = await s3Client.send(new client_s3_1.ListObjectsV2Command({
401
+ Bucket: config.templateBucketName,
402
+ Prefix: `${sequenceId}/`,
403
+ }));
404
+ for (const obj of templatesResult.Contents ?? []) {
405
+ if (obj.Key?.endsWith(".html")) {
406
+ const result = await s3Client.send(new client_s3_1.GetObjectCommand({
407
+ Bucket: config.templateBucketName,
408
+ Key: obj.Key,
409
+ }));
410
+ const html = (await result.Body?.transformToString()) ?? "";
411
+ const key = obj.Key.replace(/\.html$/, "");
412
+ templates.push({ key, html });
413
+ }
414
+ }
415
+ }
416
+ catch (err) {
417
+ warnings.push(`Could not fetch templates from S3: ${err instanceof Error ? err.message : String(err)}`);
418
+ }
419
+ // 7. Build the definition
420
+ const definition = {
421
+ id: sequenceId,
422
+ trigger: {
423
+ detailType,
424
+ subscriberMapping,
425
+ },
426
+ timeoutMinutes,
427
+ steps,
428
+ };
429
+ if (events.length > 0) {
430
+ definition.events = events;
431
+ }
432
+ // 8. Add warnings for HTML-only templates
433
+ if (templates.length > 0) {
434
+ warnings.push("Templates are compiled HTML with Liquid placeholders (not React Email .tsx). " +
435
+ "They work for deployment but cannot use `email dev` for preview. " +
436
+ "You can manually convert them to React Email later.");
437
+ }
438
+ return { definition, templates, warnings };
439
+ }
440
+ //# sourceMappingURL=sequences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequences.js","sourceRoot":"","sources":["../../src/tools/sequences.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailshot/mcp",
3
- "version": "0.2.3",
3
+ "version": "1.0.0",
4
4
  "description": "MCP server for mailshot — subscriber management, engagement analytics, and system health",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -23,12 +23,13 @@
23
23
  "dependencies": {
24
24
  "@modelcontextprotocol/sdk": "^1.12.1",
25
25
  "@aws-sdk/client-dynamodb": "^3.1009.0",
26
+ "@aws-sdk/client-eventbridge": "^3.1009.0",
26
27
  "@aws-sdk/client-s3": "^3.1009.0",
27
28
  "@aws-sdk/client-sfn": "^3.1009.0",
28
29
  "@aws-sdk/util-dynamodb": "^3.996.2",
29
30
  "liquidjs": "^10.25.0",
30
31
  "zod": "^3.25.67",
31
- "@mailshot/shared": "0.2.3"
32
+ "@mailshot/shared": "1.0.0"
32
33
  },
33
34
  "scripts": {
34
35
  "build": "tsc",