@migma/mcp 1.7.2 → 1.7.4
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/README.md +71 -0
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +15 -8
- package/build/index.js.map +1 -1
- package/build/profiles.d.ts +3 -0
- package/build/profiles.d.ts.map +1 -0
- package/build/profiles.js +10 -0
- package/build/profiles.js.map +1 -0
- package/build/prompts/index.d.ts.map +1 -1
- package/build/prompts/index.js +22 -9
- package/build/prompts/index.js.map +1 -1
- package/build/tools/__tests__/brand.test.d.ts +2 -0
- package/build/tools/__tests__/brand.test.d.ts.map +1 -0
- package/build/tools/__tests__/brand.test.js +36 -0
- package/build/tools/__tests__/brand.test.js.map +1 -0
- package/build/tools/__tests__/campaign-recipients.test.d.ts +2 -0
- package/build/tools/__tests__/campaign-recipients.test.d.ts.map +1 -0
- package/build/tools/__tests__/campaign-recipients.test.js +61 -0
- package/build/tools/__tests__/campaign-recipients.test.js.map +1 -0
- package/build/tools/__tests__/catalog.test.js +40 -4
- package/build/tools/__tests__/catalog.test.js.map +1 -1
- package/build/tools/__tests__/context.test.d.ts +2 -0
- package/build/tools/__tests__/context.test.d.ts.map +1 -0
- package/build/tools/__tests__/context.test.js +98 -0
- package/build/tools/__tests__/context.test.js.map +1 -0
- package/build/tools/__tests__/email-edit.test.d.ts +2 -0
- package/build/tools/__tests__/email-edit.test.d.ts.map +1 -0
- package/build/tools/__tests__/email-edit.test.js +82 -0
- package/build/tools/__tests__/email-edit.test.js.map +1 -0
- package/build/tools/__tests__/openai-profile.test.d.ts +2 -0
- package/build/tools/__tests__/openai-profile.test.d.ts.map +1 -0
- package/build/tools/__tests__/openai-profile.test.js +56 -0
- package/build/tools/__tests__/openai-profile.test.js.map +1 -0
- package/build/tools/__tests__/segments.test.d.ts +2 -0
- package/build/tools/__tests__/segments.test.d.ts.map +1 -0
- package/build/tools/__tests__/segments.test.js +149 -0
- package/build/tools/__tests__/segments.test.js.map +1 -0
- package/build/tools/annotations.d.ts +7 -0
- package/build/tools/annotations.d.ts.map +1 -1
- package/build/tools/annotations.js +2 -2
- package/build/tools/annotations.js.map +1 -1
- package/build/tools/billing.d.ts +2 -1
- package/build/tools/billing.d.ts.map +1 -1
- package/build/tools/billing.js +4 -3
- package/build/tools/billing.js.map +1 -1
- package/build/tools/brand.d.ts.map +1 -1
- package/build/tools/brand.js +12 -7
- package/build/tools/brand.js.map +1 -1
- package/build/tools/campaigns.d.ts.map +1 -1
- package/build/tools/campaigns.js +13 -1
- package/build/tools/campaigns.js.map +1 -1
- package/build/tools/capabilities.d.ts +5 -2
- package/build/tools/capabilities.d.ts.map +1 -1
- package/build/tools/capabilities.js +31 -16
- package/build/tools/capabilities.js.map +1 -1
- package/build/tools/contacts.js +5 -5
- package/build/tools/contacts.js.map +1 -1
- package/build/tools/context.d.ts +2 -1
- package/build/tools/context.d.ts.map +1 -1
- package/build/tools/context.js +57 -33
- package/build/tools/context.js.map +1 -1
- package/build/tools/domains.d.ts +2 -1
- package/build/tools/domains.d.ts.map +1 -1
- package/build/tools/domains.js +14 -11
- package/build/tools/domains.js.map +1 -1
- package/build/tools/email-edit-client.d.ts +15 -0
- package/build/tools/email-edit-client.d.ts.map +1 -0
- package/build/tools/email-edit-client.js +38 -0
- package/build/tools/email-edit-client.js.map +1 -0
- package/build/tools/generate.d.ts.map +1 -1
- package/build/tools/generate.js +36 -12
- package/build/tools/generate.js.map +1 -1
- package/build/tools/projects.js +6 -6
- package/build/tools/projects.js.map +1 -1
- package/build/tools/segments.d.ts.map +1 -1
- package/build/tools/segments.js +34 -2
- package/build/tools/segments.js.map +1 -1
- package/package.json +7 -3
package/build/tools/context.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { canUse } from "../permissions.js";
|
|
3
|
+
import { isToolInProfile } from "../profiles.js";
|
|
3
4
|
import { READ_ONLY_TOOL } from "./annotations.js";
|
|
4
|
-
export function registerContextTools(server, client, grantedPermissions, preferredProjectId) {
|
|
5
|
+
export function registerContextTools(server, client, grantedPermissions, preferredProjectId, profile = "general") {
|
|
5
6
|
if (!canUse(grantedPermissions, ["email:read"]))
|
|
6
7
|
return;
|
|
7
8
|
server.registerTool("migma_get_context", {
|
|
8
9
|
title: "Get Account Context",
|
|
9
10
|
annotations: READ_ONLY_TOOL,
|
|
10
|
-
description: "One-call account snapshot: workspaces (each with its brands as id + name), brand count, plan and remaining credits, sending domains with their status, and a setup block for the working brand: brandKit (missing, partial, ready), saved design references, audience size, sending domain state.
|
|
11
|
-
inputSchema: z.object({
|
|
12
|
-
|
|
11
|
+
description: "One-call account snapshot: workspaces (each with its brands as id + name), brand count, plan and remaining credits, sending domains with their status, and a setup block for the working brand: brandKit (missing, partial, ready), standing guidelines, saved design references, audience size, and account sending domain state. Null means unknown or unavailable, never missing. Pass projectId for the working brand; multiple brands require a choice. Suggestions are optional context, not a checklist to show the user. Use only what helps their current task. Call this after connecting, before the first task, and whenever the user asks what they can do.",
|
|
12
|
+
inputSchema: z.object({
|
|
13
|
+
projectId: z.string().min(1).optional().describe("Working brand ID. Omit only before a brand is selected."),
|
|
14
|
+
}),
|
|
15
|
+
}, async (args) => {
|
|
13
16
|
const ws = client.workspaces;
|
|
14
17
|
const canBilling = canUse(grantedPermissions, ["billing:read"]);
|
|
15
18
|
const canDomains = canUse(grantedPermissions, ["domain:read"]);
|
|
@@ -22,15 +25,15 @@ export function registerContextTools(server, client, grantedPermissions, preferr
|
|
|
22
25
|
const workspaceRows = workspaces?.data?.workspaces ?? [];
|
|
23
26
|
const projectRows = (projects?.data
|
|
24
27
|
?.projects) ?? [];
|
|
28
|
+
const brandCount = projects?.data ? projects.data.pagination?.total ?? projectRows.length : null;
|
|
25
29
|
const creditData = credits?.data ?? null;
|
|
26
30
|
const domainRows = (domains?.data ?? []);
|
|
27
31
|
const verifiedDomains = domainRows.filter((d) => d.isVerified);
|
|
28
32
|
// Second wave, bounded to the working brand: is its kit complete, does
|
|
29
33
|
// it have references, does it have an audience. One brand, one page.
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const brandId = brandRow ? String(brandRow._id ?? brandRow.id ?? "") : "";
|
|
34
|
+
const brandId = args.projectId || preferredProjectId ||
|
|
35
|
+
(brandCount === 1 ? String(projectRows[0]?._id ?? projectRows[0]?.id ?? "") : "");
|
|
36
|
+
const brandRow = projectRows.find((p) => String(p._id ?? p.id) === brandId);
|
|
34
37
|
const setupClient = client;
|
|
35
38
|
const canAudience = canUse(grantedPermissions, ["audience:read"]);
|
|
36
39
|
const [brand, references, contacts] = brandId
|
|
@@ -44,44 +47,64 @@ export function registerContextTools(server, client, grantedPermissions, preferr
|
|
|
44
47
|
: Promise.resolve(null),
|
|
45
48
|
])
|
|
46
49
|
: [null, null, null];
|
|
47
|
-
const brandData =
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
+
const brandData = brand?.data;
|
|
51
|
+
const colors = brandData?.colors;
|
|
52
|
+
const hasKit = !!(colors?.accent && Array.isArray(brandData?.fonts) &&
|
|
53
|
+
brandData.fonts.length && (brandData.logoUrls?.primary || brandData.logoUrls?.secondary));
|
|
50
54
|
const setup = {
|
|
51
55
|
brandId: brandId || null,
|
|
52
56
|
brandName: brandData?.name ?? brandRow?.name ?? null,
|
|
53
|
-
brandKit:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
brandKit: brandData ? (hasKit ? "ready" : "partial") : brandCount === 0 && !brandId ? "missing" : null,
|
|
58
|
+
guidelines: brandData ? !!String(brandData.modelInstructions ?? "").trim() : null,
|
|
59
|
+
references: references?.data?.total ?? references?.data?.references?.length ?? null,
|
|
60
|
+
audience: contacts?.data?.count ?? null,
|
|
61
|
+
sendingDomain: !domains?.data ? null : verifiedDomains.length ? "verified" : domainRows.length ? "pending" : "none",
|
|
57
62
|
};
|
|
63
|
+
const unavailable = [
|
|
64
|
+
...(!projects?.data ? ["brands"] : []),
|
|
65
|
+
...(brandId && !brandData ? ["brand kit"] : []),
|
|
66
|
+
...(brandId && setup.references === null ? ["references"] : []),
|
|
67
|
+
...(brandId && canAudience && setup.audience === null ? ["audience"] : []),
|
|
68
|
+
...(canDomains && !domains?.data ? ["sending domains"] : []),
|
|
69
|
+
];
|
|
70
|
+
const canWriteBrand = canUse(grantedPermissions, ["project:write"]);
|
|
71
|
+
const canWriteAudience = canUse(grantedPermissions, ["audience:write"]);
|
|
72
|
+
const canWriteDomain = canUse(grantedPermissions, ["domain:write"]);
|
|
58
73
|
const suggestions = [];
|
|
59
|
-
if (
|
|
60
|
-
suggestions.push("
|
|
74
|
+
if (!brandId && brandCount !== null && brandCount > 1) {
|
|
75
|
+
suggestions.push("Ask which brand to work on, then call migma_get_context with its projectId.");
|
|
61
76
|
}
|
|
62
|
-
if (
|
|
63
|
-
suggestions.push("No
|
|
77
|
+
if (setup.brandKit === "missing" && canWriteBrand) {
|
|
78
|
+
suggestions.push("No brand kit yet. Ask for the website and use migma_import_brand to collect colors, fonts, and logo.");
|
|
64
79
|
}
|
|
65
|
-
if (
|
|
66
|
-
suggestions.push("
|
|
80
|
+
if (setup.brandKit === "partial" && canWriteBrand) {
|
|
81
|
+
suggestions.push("Some brand kit details are missing. Read migma_get_project and ask only for the missing colors, fonts, or logo; keep the user's task moving.");
|
|
67
82
|
}
|
|
68
|
-
if (
|
|
69
|
-
suggestions.push("
|
|
83
|
+
if (setup.guidelines === false && canWriteBrand) {
|
|
84
|
+
suggestions.push("Ask for brand guidelines or lasting email and image preferences. Save them with migma_update_brand_guidelines, preserving existing rules.");
|
|
70
85
|
}
|
|
71
|
-
if (
|
|
72
|
-
suggestions.push("
|
|
86
|
+
if (setup.references === 0 && canWriteBrand) {
|
|
87
|
+
suggestions.push("Ask for an email the user loves. Use migma_save_reference for a generated emailId or title + html; pass screenshots as structured images when generating.");
|
|
73
88
|
}
|
|
74
|
-
if (
|
|
75
|
-
suggestions.push("
|
|
89
|
+
if (setup.audience === 0 && canWriteAudience) {
|
|
90
|
+
suggestions.push("Ask for their audience CSV. Import it into a named List with migma_create_contact_import, preserving useful custom columns; inspect migma_get_field_catalog before suggesting segments.");
|
|
91
|
+
}
|
|
92
|
+
if (setup.sendingDomain === "none" && canWriteDomain) {
|
|
93
|
+
suggestions.push("Offer migma_create_managed_domain for a ready-to-use address, or migma_setup_domain for a domain the user owns.");
|
|
76
94
|
}
|
|
77
|
-
if (
|
|
78
|
-
suggestions.push("
|
|
95
|
+
if (setup.sendingDomain === "pending" && canWriteDomain) {
|
|
96
|
+
suggestions.push("A sending domain is pending. Offer migma_verify_domain to check it.");
|
|
97
|
+
}
|
|
98
|
+
if (creditData && !creditData.hasCredits) {
|
|
99
|
+
suggestions.push(isToolInProfile("migma_get_upgrade_link", profile) && canUse(grantedPermissions, ["billing:write"])
|
|
100
|
+
? "Out of credits. Offer migma_get_upgrade_link; the user pays in their browser."
|
|
101
|
+
: "Out of credits. Explain that generation needs more credits.");
|
|
79
102
|
}
|
|
80
|
-
if (
|
|
81
|
-
suggestions.push("
|
|
103
|
+
if (unavailable.length) {
|
|
104
|
+
suggestions.push("Some setup reads are unavailable. Retry the relevant read before describing anything as missing; continue with known context.");
|
|
82
105
|
}
|
|
83
106
|
if (suggestions.length === 0) {
|
|
84
|
-
suggestions.push("
|
|
107
|
+
suggestions.push("Continue the user's task. Reply with the result and relevant returned links; stop when done. Suggest an email only if they have no task in mind.");
|
|
85
108
|
}
|
|
86
109
|
return {
|
|
87
110
|
content: [
|
|
@@ -89,7 +112,7 @@ export function registerContextTools(server, client, grantedPermissions, preferr
|
|
|
89
112
|
type: "text",
|
|
90
113
|
text: JSON.stringify({
|
|
91
114
|
workspaces: workspaceRows,
|
|
92
|
-
brandCount
|
|
115
|
+
brandCount,
|
|
93
116
|
plan: creditData
|
|
94
117
|
? {
|
|
95
118
|
currentPlan: creditData.currentPlan,
|
|
@@ -104,6 +127,7 @@ export function registerContextTools(server, client, grantedPermissions, preferr
|
|
|
104
127
|
isVerified: d.isVerified ?? false,
|
|
105
128
|
})),
|
|
106
129
|
setup,
|
|
130
|
+
unavailable,
|
|
107
131
|
suggestions,
|
|
108
132
|
}, null, 2),
|
|
109
133
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAa,EACb,kBAA6B,EAC7B,kBAA2B;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAwB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+BlD,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,MAAa,EACb,kBAA6B,EAC7B,kBAA2B,EAC3B,UAA2B,SAAS;IAEpC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,CAAC;QAAE,OAAO;IAExD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,cAAc;QAC3B,WAAW,EACT,0oBAA0oB;QAC5oB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;SAC5G,CAAC;KACH,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,GAAI,MAA2B,CAAC,UAAU,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACtD,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/E,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SAC7E,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QACzD,MAAM,WAAW,GACf,CAAE,QAAQ,EAAE,IAAyE;YACnF,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAIrC,CAAC;QACH,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAE/D,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB;YAClD,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAqB,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO;YAC3C,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gBAC9C,WAAW,CAAC,QAAQ,CAAC,UAAU;oBAC7B,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBAC5D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACzB,WAAW;oBACT,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;oBAC1E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aAC1B,CAAC;YACJ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvB,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,MAAyC,CAAC;QACpE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;YACjE,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,OAAO,IAAI,IAAI;YACxB,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,IAAI;YACpD,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACtG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YACjF,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI;YACnF,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;YACvC,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SAC3G,CAAC;QACX,MAAM,WAAW,GAAG;YAClB,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,OAAO,IAAI,WAAW,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACpE,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,EAAE,CAAC;YAClD,WAAW,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,EAAE,CAAC;YAClD,WAAW,CAAC,IAAI,CAAC,8IAA8I,CAAC,CAAC;QACnK,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,IAAI,aAAa,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,2IAA2I,CAAC,CAAC;QAChK,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,2JAA2J,CAAC,CAAC;QAChL,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,yLAAyL,CAAC,CAAC;QAC9M,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM,IAAI,cAAc,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;QACtI,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,cAAc,EAAE,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,CAAC;gBAClH,CAAC,CAAC,+EAA+E;gBACjF,CAAC,CAAC,6DAA6D,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,+HAA+H,CAAC,CAAC;QACpJ,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,kJAAkJ,CAAC,CAAC;QACvK,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,UAAU,EAAE,aAAa;wBACzB,UAAU;wBACV,IAAI,EAAE,UAAU;4BACd,CAAC,CAAC;gCACE,WAAW,EAAE,UAAU,CAAC,WAAW;gCACnC,UAAU,EAAE,UAAU,CAAC,UAAU;gCACjC,0BAA0B,EAAE,UAAU,CAAC,0BAA0B;gCACjE,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;6BAC5D;4BACH,CAAC,CAAC,SAAS;wBACb,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACrC,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;yBAClC,CAAC,CAAC;wBACH,KAAK;wBACL,WAAW;wBACX,WAAW;qBACZ,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/build/tools/domains.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { Migma } from "migma";
|
|
3
|
-
|
|
3
|
+
import { type MigmaMcpProfile } from "../profiles.js";
|
|
4
|
+
export declare function registerDomainTools(server: McpServer, client: Migma, grantedPermissions?: string[], profile?: MigmaMcpProfile): void;
|
|
4
5
|
//# sourceMappingURL=domains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAQvE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,OAAO,GAAE,eAA2B,QAmSrC"}
|
package/build/tools/domains.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { canUse } from "../permissions.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { isToolInProfile } from "../profiles.js";
|
|
4
|
+
import { OPEN_WORLD_DESTRUCTIVE_TOOL, OPEN_WORLD_MUTATING_TOOL, OPEN_WORLD_READ_ONLY_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
|
|
5
|
+
export function registerDomainTools(server, client, grantedPermissions, profile = "general") {
|
|
5
6
|
if (canUse(grantedPermissions, ["domain:read"])) {
|
|
6
7
|
server.registerTool("migma_list_domains", {
|
|
7
8
|
title: "List Domains",
|
|
@@ -53,10 +54,10 @@ export function registerDomainTools(server, client, grantedPermissions) {
|
|
|
53
54
|
if (canUse(grantedPermissions, ["domain:write"])) {
|
|
54
55
|
server.registerTool("migma_verify_domain", {
|
|
55
56
|
title: "Verify Domain",
|
|
56
|
-
annotations:
|
|
57
|
-
description: "
|
|
57
|
+
annotations: OPEN_WORLD_DESTRUCTIVE_TOOL,
|
|
58
|
+
description: "Recheck an existing sending domain in the authenticated Migma account after DNS setup. Reads published DNS and provider verification status, then saves domain and record statuses. May restart failed DKIM verification and replace required DKIM records; publish any newly returned records. Can enable Migma as a sending provider when the domain becomes sendable. Returns status, DNS records, and outstanding issues. Does not publish DNS records or send email.",
|
|
58
59
|
inputSchema: z.object({
|
|
59
|
-
domain: z.string().describe("
|
|
60
|
+
domain: z.string().describe("Existing sending domain from migma_list_domains, e.g. mail.yourbrand.com."),
|
|
60
61
|
}),
|
|
61
62
|
}, async (args) => {
|
|
62
63
|
const { data, error } = await client.domains.verify(args.domain);
|
|
@@ -93,11 +94,11 @@ export function registerDomainTools(server, client, grantedPermissions) {
|
|
|
93
94
|
return toolResult(data);
|
|
94
95
|
});
|
|
95
96
|
}
|
|
96
|
-
if (canUse(grantedPermissions, ["domain:read"])) {
|
|
97
|
+
if (isToolInProfile("migma_search_buyable_domains", profile) && canUse(grantedPermissions, ["domain:read"])) {
|
|
97
98
|
server.registerTool("migma_search_buyable_domains", {
|
|
98
99
|
title: "Search Buyable Domains",
|
|
99
|
-
annotations:
|
|
100
|
-
description: "
|
|
100
|
+
annotations: OPEN_WORLD_READ_ONLY_TOOL,
|
|
101
|
+
description: "Look up public domain registration availability and annual price quotes through Migma's registrar for a user-supplied name or keyword. Returns up to limit quotes, including availability and supported status. Requires account eligibility to purchase another domain; a free account can hold one purchased domain. Quotes can change before checkout. Does not reserve or register a domain, create checkout, or charge the user.",
|
|
101
102
|
inputSchema: z.object({
|
|
102
103
|
q: z.string().describe("Name or keyword, e.g. 'acme' or 'acme.com'"),
|
|
103
104
|
limit: z.number().int().min(1).max(20).optional().describe("Max quotes to return (default 8)"),
|
|
@@ -109,11 +110,11 @@ export function registerDomainTools(server, client, grantedPermissions) {
|
|
|
109
110
|
return toolResult(data);
|
|
110
111
|
});
|
|
111
112
|
}
|
|
112
|
-
if (canUse(grantedPermissions, ["domain:write"])) {
|
|
113
|
+
if (isToolInProfile("migma_buy_domain", profile) && canUse(grantedPermissions, ["domain:write"])) {
|
|
113
114
|
server.registerTool("migma_buy_domain", {
|
|
114
115
|
title: "Buy Domain",
|
|
115
116
|
annotations: OPEN_WORLD_MUTATING_TOOL,
|
|
116
|
-
description: "
|
|
117
|
+
description: "Create a payment-pending domain purchase record and a Stripe checkout link for a domain the user chose. Annual registration renews automatically after the user completes checkout in their browser. This call does not charge or register the domain; registration starts after payment clears. Requires a purchasable domain and account eligibility; a free account can hold one purchased domain. Repeated calls can create new checkout links; check migma_get_domain_purchases after an uncertain result or payment. An optional redirectUrl becomes the bought domain's forwarding destination after registration.",
|
|
117
118
|
inputSchema: z.object({
|
|
118
119
|
domain: z.string().describe("Domain to buy, e.g. 'acme.com'"),
|
|
119
120
|
redirectUrl: z
|
|
@@ -135,7 +136,9 @@ export function registerDomainTools(server, client, grantedPermissions) {
|
|
|
135
136
|
server.registerTool("migma_get_domain_purchases", {
|
|
136
137
|
title: "Get Domain Purchases",
|
|
137
138
|
annotations: READ_ONLY_TOOL,
|
|
138
|
-
description:
|
|
139
|
+
description: profile === "openai"
|
|
140
|
+
? "Read existing domain registrations for the authenticated Migma account and their status: payment_pending, registering, active, failed, or refunded. Does not start a purchase or create checkout."
|
|
141
|
+
: "List domain purchases and their status: payment_pending → registering → active (or failed/refunded, auto-refunded on failure). Poll after the user pays a migma_buy_domain checkout.",
|
|
139
142
|
}, async () => {
|
|
140
143
|
const { data, error } = await client.domainPurchases.registrations();
|
|
141
144
|
if (error)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Migma } from "migma";
|
|
2
|
+
import type { Config } from "../config.js";
|
|
3
|
+
type Result = {
|
|
4
|
+
data?: unknown;
|
|
5
|
+
error?: {
|
|
6
|
+
message: string;
|
|
7
|
+
} | null;
|
|
8
|
+
};
|
|
9
|
+
export declare function startEmailEdit(client: Migma, config: Config, emailId: string, params: {
|
|
10
|
+
prompt: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
}, idempotencyKey: string): Promise<Result>;
|
|
13
|
+
export declare function getEmailEditStatus(client: Migma, config: Config, emailId: string, editId: string): Promise<Result>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=email-edit-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-edit-client.d.ts","sourceRoot":"","sources":["../../src/tools/email-edit-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,KAAK,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AA6BrE,wBAAsB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxK;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxH"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** Compatibility bridge while hosted installations still use the previous SDK.
|
|
2
|
+
* Both paths use the same authenticated async REST contract, never sync edit. */
|
|
3
|
+
async function request(config, path, body, idempotencyKey) {
|
|
4
|
+
if (!config.apiKey)
|
|
5
|
+
return { error: { message: "This SDK lacks async edits. Upgrade migma or provide MCP API configuration." } };
|
|
6
|
+
try {
|
|
7
|
+
const base = (config.baseUrl || "https://api.migma.ai/v1").replace(/\/+$/, "");
|
|
8
|
+
const response = await fetch(`${base}${path}`, {
|
|
9
|
+
method: body ? "POST" : "GET",
|
|
10
|
+
headers: {
|
|
11
|
+
Authorization: `Bearer ${config.apiKey}`, "Content-Type": "application/json", "User-Agent": "migma-mcp",
|
|
12
|
+
...(idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {}),
|
|
13
|
+
},
|
|
14
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
15
|
+
signal: AbortSignal.timeout(15_000),
|
|
16
|
+
});
|
|
17
|
+
const payload = await response.json();
|
|
18
|
+
if (!response.ok || !payload.success)
|
|
19
|
+
return { error: { message: payload.error || `Request failed with status ${response.status}` } };
|
|
20
|
+
return { data: payload.data, error: null };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return { error: { message: error instanceof Error ? error.message : "Edit request could not be confirmed" } };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export async function startEmailEdit(client, config, emailId, params, idempotencyKey) {
|
|
27
|
+
const emails = client.emails;
|
|
28
|
+
if (emails.startEdit)
|
|
29
|
+
return emails.startEdit(emailId, params, { idempotencyKey });
|
|
30
|
+
return request(config, `/emails/${encodeURIComponent(emailId)}/edit`, { ...params, async: true }, idempotencyKey);
|
|
31
|
+
}
|
|
32
|
+
export async function getEmailEditStatus(client, config, emailId, editId) {
|
|
33
|
+
const emails = client.emails;
|
|
34
|
+
if (emails.getEditStatus)
|
|
35
|
+
return emails.getEditStatus(emailId, editId);
|
|
36
|
+
return request(config, `/emails/${encodeURIComponent(emailId)}/edits/${encodeURIComponent(editId)}`);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=email-edit-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-edit-client.js","sourceRoot":"","sources":["../../src/tools/email-edit-client.ts"],"names":[],"mappings":"AASA;iFACiF;AACjF,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,IAAY,EAAE,IAAa,EAAE,cAAuB;IACzF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,6EAA6E,EAAE,EAAE,CAAC;IACjI,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YAC7C,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAC7B,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW;gBACvG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE;YACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2D,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,8BAA8B,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;QACtI,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,CAAC;IAChH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAa,EAAE,MAAc,EAAE,OAAe,EAAE,MAA0C,EAAE,cAAsB;IACrJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;IAC3C,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAa,EAAE,MAAc,EAAE,OAAe,EAAE,MAAc;IACrG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAoB,CAAC;IAC3C,IAAI,MAAM,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,kBAAkB,CAAC,OAAO,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAY3C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,EAAE,QA2W9B"}
|
package/build/tools/generate.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { canUse } from "../permissions.js";
|
|
3
4
|
import { decorateEmailPayload } from "./agent-payload.js";
|
|
4
5
|
import { toolResultWithImages } from "./email-images.js";
|
|
5
|
-
import {
|
|
6
|
+
import { startEmailEdit, getEmailEditStatus } from "./email-edit-client.js";
|
|
7
|
+
import { DESTRUCTIVE_TOOL, OPEN_WORLD_MUTATING_TOOL, OPEN_WORLD_DESTRUCTIVE_TOOL, READ_ONLY_TOOL, } from "./annotations.js";
|
|
6
8
|
export function registerGenerateTools(server, client, config, grantedPermissions) {
|
|
7
9
|
if (canUse(grantedPermissions, ["email:write", "email:read"])) {
|
|
8
10
|
server.registerTool("migma_generate_email", {
|
|
9
11
|
title: "Create / Generate Email or Series",
|
|
10
|
-
annotations:
|
|
11
|
-
description: "Create, design, write, compose
|
|
12
|
+
annotations: OPEN_WORLD_MUTATING_TOOL,
|
|
13
|
+
description: "Create, design, write, or compose saved email drafts from a brief for an existing active Migma brand. One call creates an email or series: pass count (1–12) and each email's purpose. Never call this tool once per email. Saves new drafts and consumes 1 email credit per finished email; does not send email or schedule a campaign. May research public websites and fetch supplied image URLs. Returns conversationId immediately; poll migma_get_generation_status for previews and editor links. Reuse the same idempotency_key and identical inputs within 24h after an uncertain submission; without a key, retries can create duplicate drafts and consume more credits. Use migma_import_html to convert existing HTML. Pass user-selected images through images; a screenshot URL of an email or site the user names can be a design reference. URLs mentioned only in prompt text are not image inputs. Specify which images are content or reference, and include exact required offers, prices, and dates in the brief.",
|
|
12
14
|
inputSchema: z.object({
|
|
13
15
|
projectId: z
|
|
14
16
|
.string()
|
|
15
17
|
.optional()
|
|
16
18
|
.describe("Project/brand ID. Local stdio uses MIGMA_PROJECT_ID if not provided; hosted remote clients should pass projectId."),
|
|
17
|
-
prompt: z.string().min(1).describe("
|
|
19
|
+
prompt: z.string().min(1).describe("Brief for this email or series: purpose, copy, required facts, and design instructions."),
|
|
18
20
|
languages: z
|
|
19
21
|
.array(z.string())
|
|
20
22
|
.max(5)
|
|
@@ -35,7 +37,7 @@ export function registerGenerateTools(server, client, config, grantedPermissions
|
|
|
35
37
|
referenceId: z
|
|
36
38
|
.string()
|
|
37
39
|
.optional()
|
|
38
|
-
.describe("Existing
|
|
40
|
+
.describe("Existing conversation ID from the same brand to use as a design reference."),
|
|
39
41
|
idempotency_key: z
|
|
40
42
|
.string()
|
|
41
43
|
.max(100)
|
|
@@ -191,11 +193,11 @@ export function registerGenerateTools(server, client, config, grantedPermissions
|
|
|
191
193
|
return toolResultWithImages(decorateEmailPayload(data, { includeHtml: args.includeHtml }), "detail");
|
|
192
194
|
});
|
|
193
195
|
}
|
|
194
|
-
if (canUse(grantedPermissions, ["email:write"])) {
|
|
196
|
+
if (canUse(grantedPermissions, ["email:write", "email:read"])) {
|
|
195
197
|
server.registerTool("migma_edit_email", {
|
|
196
198
|
title: "Edit / Change Email",
|
|
197
|
-
annotations: DESTRUCTIVE_TOOL,
|
|
198
|
-
description: "Edit, change, revise, or rewrite one already-generated email with a natural-language prompt.
|
|
199
|
+
annotations: { ...DESTRUCTIVE_TOOL, idempotentHint: true },
|
|
200
|
+
description: "Edit, change, revise, or rewrite one already-generated email with a natural-language prompt. Returns editId, emailId, conversationId and status immediately; poll migma_get_email_edit_status with emailId and editId until completed or failed. Never resubmit a pending or processing edit, and reuse the same idempotency_key after an uncertain submission. Conversation generation status can describe an older turn and does not prove this edit finished. For a brand-new email or series, or to add external images, use migma_generate_email instead. The completed status returns the saved preview, subject, appUrl, and screenshotStatus; set includeHtml when markup is needed. Charges 0.5 email credit after save.",
|
|
199
201
|
inputSchema: z.object({
|
|
200
202
|
emailId: z.string().describe("Generated email ID from result.emails[].emailId"),
|
|
201
203
|
prompt: z
|
|
@@ -206,14 +208,36 @@ export function registerGenerateTools(server, client, config, grantedPermissions
|
|
|
206
208
|
includeHtml: z
|
|
207
209
|
.boolean()
|
|
208
210
|
.optional()
|
|
209
|
-
.describe("
|
|
211
|
+
.describe("Request HTML on the subsequent migma_get_email_edit_status call. Start returns a job handle."),
|
|
212
|
+
idempotency_key: z.string().min(1).max(100).optional()
|
|
213
|
+
.describe("Reuse this key with identical edit inputs after an uncertain submission. Same key resumes the same job for at least 24h after completion."),
|
|
210
214
|
}),
|
|
211
215
|
}, async (args) => {
|
|
212
|
-
const
|
|
213
|
-
const { data, error } = await
|
|
216
|
+
const key = args.idempotency_key || randomUUID();
|
|
217
|
+
const { data, error } = await startEmailEdit(client, config, args.emailId, {
|
|
214
218
|
prompt: args.prompt,
|
|
215
219
|
label: args.label,
|
|
216
|
-
});
|
|
220
|
+
}, key);
|
|
221
|
+
if (error)
|
|
222
|
+
return toolError(JSON.stringify({ error: error.message, emailId: args.emailId,
|
|
223
|
+
idempotency_key: key, nextStep: "If retrying this submission, reuse this idempotency_key and identical prompt/label. Do not start a second edit with a new key." }));
|
|
224
|
+
return toolResult({ ...decorateEmailPayload(data), idempotency_key: key,
|
|
225
|
+
nextStep: "Poll migma_get_email_edit_status with emailId and editId. Do not resubmit while pending or processing. Show the saved preview only after completed.",
|
|
226
|
+
...(args.includeHtml ? { includeHtml: true } : {}), });
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
if (canUse(grantedPermissions, ["email:read"])) {
|
|
230
|
+
server.registerTool("migma_get_email_edit_status", {
|
|
231
|
+
title: "Get Email Edit Status",
|
|
232
|
+
annotations: READ_ONLY_TOOL,
|
|
233
|
+
description: "Poll one queued email edit using its emailId and editId. Pending/processing means keep polling, not retrying the edit. Completed includes the saved email preview; show it immediately. Failed includes error and changesMayHaveBeenSaved; inspect the saved email before starting another edit. Missing/expired status does not prove the edit failed. Set includeHtml to inspect markup.",
|
|
234
|
+
inputSchema: z.object({
|
|
235
|
+
emailId: z.string().describe("Email ID returned by migma_edit_email"),
|
|
236
|
+
editId: z.string().describe("Exact edit job ID returned by migma_edit_email"),
|
|
237
|
+
includeHtml: z.boolean().optional().describe("Include saved email HTML on completion. Default false."),
|
|
238
|
+
}),
|
|
239
|
+
}, async (args) => {
|
|
240
|
+
const { data, error } = await getEmailEditStatus(client, config, args.emailId, args.editId);
|
|
217
241
|
if (error)
|
|
218
242
|
return toolError(error.message);
|
|
219
243
|
return toolResultWithImages(decorateEmailPayload(data, { includeHtml: args.includeHtml }), "detail");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/tools/generate.ts"],"names":[],"mappings":"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"}
|
package/build/tools/projects.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { canUse } from "../permissions.js";
|
|
3
3
|
import { brandCard, compactProjectList, slimProject } from "./agent-payload.js";
|
|
4
|
-
import {
|
|
4
|
+
import { OPEN_WORLD_MUTATING_TOOL, READ_ONLY_TOOL } from "./annotations.js";
|
|
5
5
|
export function registerProjectTools(server, client, config, grantedPermissions) {
|
|
6
6
|
if (canUse(grantedPermissions, ["email:read"])) {
|
|
7
7
|
server.registerTool("migma_list_projects", {
|
|
@@ -60,14 +60,14 @@ export function registerProjectTools(server, client, config, grantedPermissions)
|
|
|
60
60
|
if (canUse(grantedPermissions, ["project:write", "email:read"])) {
|
|
61
61
|
server.registerTool("migma_import_brand", {
|
|
62
62
|
title: "Import Brand",
|
|
63
|
-
annotations:
|
|
64
|
-
description: "
|
|
63
|
+
annotations: OPEN_WORLD_MUTATING_TOOL,
|
|
64
|
+
description: "Create a new saved Migma brand from one public website URL the user provides and is authorized to import. Fetches website content to extract colors, fonts, logos, and tone of voice. Waits for import completion, then returns projectId, status, and saved brand details when available. Requires permission to create a brand and available brand capacity. Each call starts a new import; retrying after a timeout can create another brand. Check migma_list_projects before retrying an uncertain import.",
|
|
65
65
|
inputSchema: z.object({
|
|
66
66
|
urls: z
|
|
67
|
-
.array(z.string())
|
|
67
|
+
.array(z.string().url())
|
|
68
68
|
.min(1)
|
|
69
|
-
.max(
|
|
70
|
-
.describe("
|
|
69
|
+
.max(1)
|
|
70
|
+
.describe("Exactly one public website URL to import. The backend imports only the first URL."),
|
|
71
71
|
}),
|
|
72
72
|
}, async (args) => {
|
|
73
73
|
const { data, error } = await client.projects.importAndWait({
|