@cognilead/mcp-server 0.1.0 → 0.3.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/README.md +27 -15
- package/dist/api-client.d.ts +3 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +8 -2
- package/dist/api-client.js.map +1 -1
- package/dist/auth.js +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -12
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +24 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +99 -0
- package/dist/prompts.js.map +1 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +0 -1
- package/dist/rate-limit.js.map +1 -1
- package/dist/resources.d.ts +15 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +75 -0
- package/dist/resources.js.map +1 -0
- package/dist/schemas.d.ts +152 -49
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +98 -20
- package/dist/schemas.js.map +1 -1
- package/dist/tools/check-deliverability.d.ts +2 -0
- package/dist/tools/check-deliverability.d.ts.map +1 -0
- package/dist/tools/check-deliverability.js +165 -0
- package/dist/tools/check-deliverability.js.map +1 -0
- package/dist/tools/create-topup-link.d.ts +2 -0
- package/dist/tools/create-topup-link.d.ts.map +1 -0
- package/dist/tools/create-topup-link.js +15 -0
- package/dist/tools/create-topup-link.js.map +1 -0
- package/dist/tools/get-billing-usage.d.ts +2 -0
- package/dist/tools/get-billing-usage.d.ts.map +1 -0
- package/dist/tools/get-billing-usage.js +12 -0
- package/dist/tools/get-billing-usage.js.map +1 -0
- package/dist/tools/get-deliverability.d.ts +2 -0
- package/dist/tools/get-deliverability.d.ts.map +1 -0
- package/dist/tools/get-deliverability.js +12 -0
- package/dist/tools/get-deliverability.js.map +1 -0
- package/dist/tools/get-subscription.d.ts +2 -0
- package/dist/tools/get-subscription.d.ts.map +1 -0
- package/dist/tools/get-subscription.js +12 -0
- package/dist/tools/get-subscription.js.map +1 -0
- package/dist/tools/health.d.ts +2 -0
- package/dist/tools/health.d.ts.map +1 -0
- package/dist/tools/health.js +12 -0
- package/dist/tools/health.js.map +1 -0
- package/dist/tools/ingest-lead.js +1 -1
- package/dist/tools/ingest-lead.js.map +1 -1
- package/dist/tools/list-api-keys.d.ts +2 -0
- package/dist/tools/list-api-keys.d.ts.map +1 -0
- package/dist/tools/list-api-keys.js +13 -0
- package/dist/tools/list-api-keys.js.map +1 -0
- package/dist/tools/list-leads.d.ts +2 -0
- package/dist/tools/list-leads.d.ts.map +1 -0
- package/dist/tools/list-leads.js +19 -0
- package/dist/tools/list-leads.js.map +1 -0
- package/dist/tools/list-sends.d.ts +2 -0
- package/dist/tools/list-sends.d.ts.map +1 -0
- package/dist/tools/list-sends.js +18 -0
- package/dist/tools/list-sends.js.map +1 -0
- package/dist/tools/list-suppressions.d.ts +2 -0
- package/dist/tools/list-suppressions.d.ts.map +1 -0
- package/dist/tools/list-suppressions.js +19 -0
- package/dist/tools/list-suppressions.js.map +1 -0
- package/dist/tools/list-webhooks.d.ts +2 -0
- package/dist/tools/list-webhooks.d.ts.map +1 -0
- package/dist/tools/list-webhooks.js +12 -0
- package/dist/tools/list-webhooks.js.map +1 -0
- package/dist/tools/run-campaign.d.ts.map +1 -1
- package/dist/tools/run-campaign.js +8 -2
- package/dist/tools/run-campaign.js.map +1 -1
- package/dist/tools/score-signal.d.ts.map +1 -1
- package/dist/tools/score-signal.js +0 -1
- package/dist/tools/score-signal.js.map +1 -1
- package/package.json +4 -3
- package/dist/tools/check-registry-flags.d.ts +0 -2
- package/dist/tools/check-registry-flags.d.ts.map +0 -1
- package/dist/tools/check-registry-flags.js +0 -31
- package/dist/tools/check-registry-flags.js.map +0 -1
- package/dist/tools/evidence-export.d.ts +0 -7
- package/dist/tools/evidence-export.d.ts.map +0 -1
- package/dist/tools/evidence-export.js +0 -42
- package/dist/tools/evidence-export.js.map +0 -1
- package/dist/tools/find-companies-with-triggers.d.ts +0 -2
- package/dist/tools/find-companies-with-triggers.d.ts.map +0 -1
- package/dist/tools/find-companies-with-triggers.js +0 -29
- package/dist/tools/find-companies-with-triggers.js.map +0 -1
- package/dist/tools/generate-seo-content.d.ts +0 -2
- package/dist/tools/generate-seo-content.d.ts.map +0 -1
- package/dist/tools/generate-seo-content.js +0 -14
- package/dist/tools/generate-seo-content.js.map +0 -1
- package/dist/tools/get-business-sheet.d.ts +0 -2
- package/dist/tools/get-business-sheet.d.ts.map +0 -1
- package/dist/tools/get-business-sheet.js +0 -24
- package/dist/tools/get-business-sheet.js.map +0 -1
- package/dist/tools/rank-companies-in-vertical.d.ts +0 -2
- package/dist/tools/rank-companies-in-vertical.d.ts.map +0 -1
- package/dist/tools/rank-companies-in-vertical.js +0 -33
- package/dist/tools/rank-companies-in-vertical.js.map +0 -1
- package/dist/tools/score-dd-risk.d.ts +0 -2
- package/dist/tools/score-dd-risk.d.ts.map +0 -1
- package/dist/tools/score-dd-risk.js +0 -22
- package/dist/tools/score-dd-risk.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// cognilead.check_deliverability — FREE, local, no API key.
|
|
2
|
+
//
|
|
3
|
+
// Reads SPF + DMARC TXT records for a domain via Node's resolver and grades
|
|
4
|
+
// them. No network beyond DNS, no hosted API call — this is a top-of-funnel
|
|
5
|
+
// acquisition tool an agent can run for any domain. Mirrors the logic behind
|
|
6
|
+
// the public web tools at /tools/spf-checker and /tools/dmarc-checker.
|
|
7
|
+
import { promises as dns } from 'node:dns';
|
|
8
|
+
import { CheckDeliverabilityInput } from '../schemas.js';
|
|
9
|
+
function normalizeDomain(raw) {
|
|
10
|
+
let d = raw.trim().toLowerCase();
|
|
11
|
+
d = d.replace(/^https?:\/\//, '').replace(/^mailto:/, '');
|
|
12
|
+
d = d.split('/')[0].split('?')[0].split('@').pop() ?? d;
|
|
13
|
+
d = d.replace(/\.$/, '');
|
|
14
|
+
if (d.length > 253)
|
|
15
|
+
return null;
|
|
16
|
+
if (!/^(?=.{1,253}$)([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/.test(d)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return d;
|
|
20
|
+
}
|
|
21
|
+
async function resolveTxtJoined(name) {
|
|
22
|
+
try {
|
|
23
|
+
const records = await dns.resolveTxt(name);
|
|
24
|
+
return records.map((chunks) => chunks.join(''));
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const worst = (a, b) => {
|
|
31
|
+
const rank = { pass: 0, warn: 1, fail: 2 };
|
|
32
|
+
return rank[a] >= rank[b] ? a : b;
|
|
33
|
+
};
|
|
34
|
+
const rollup = (findings) => findings.reduce((v, f) => worst(v, f.level), 'pass');
|
|
35
|
+
async function spf(domain) {
|
|
36
|
+
const spfs = (await resolveTxtJoined(domain)).filter((t) => t.toLowerCase().startsWith('v=spf1'));
|
|
37
|
+
if (spfs.length === 0) {
|
|
38
|
+
return {
|
|
39
|
+
verdict: 'fail',
|
|
40
|
+
record: null,
|
|
41
|
+
findings: [{ level: 'fail', text: 'No SPF record found — add a v=spf1 TXT record.' }],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const findings = [];
|
|
45
|
+
if (spfs.length > 1) {
|
|
46
|
+
findings.push({ level: 'fail', text: `Multiple SPF records (${spfs.length}); RFC 7208 allows one — receivers permerror.` });
|
|
47
|
+
}
|
|
48
|
+
const record = spfs[0];
|
|
49
|
+
const all = record.match(/[~\-?+]all\b/);
|
|
50
|
+
if (!all)
|
|
51
|
+
findings.push({ level: 'warn', text: 'No "all" mechanism — end with -all or ~all.' });
|
|
52
|
+
else if (all[0] === '+all')
|
|
53
|
+
findings.push({ level: 'fail', text: '"+all" lets anyone send as you — disables SPF.' });
|
|
54
|
+
else if (all[0] === '?all')
|
|
55
|
+
findings.push({ level: 'warn', text: '"?all" is neutral — prefer ~all or -all.' });
|
|
56
|
+
else
|
|
57
|
+
findings.push({ level: 'pass', text: `Ends with "${all[0]}".` });
|
|
58
|
+
const lookups = (record.match(/\b(include|a|mx|ptr|exists|redirect)[:=]/g) ?? []).length;
|
|
59
|
+
if (lookups > 10)
|
|
60
|
+
findings.push({ level: 'fail', text: `~${lookups} DNS lookups — over the limit of 10 (permerror).` });
|
|
61
|
+
else if (lookups >= 8)
|
|
62
|
+
findings.push({ level: 'warn', text: `~${lookups} DNS lookups — close to the limit of 10.` });
|
|
63
|
+
return { verdict: rollup(findings), record, findings };
|
|
64
|
+
}
|
|
65
|
+
async function dmarc(domain) {
|
|
66
|
+
const recs = (await resolveTxtJoined(`_dmarc.${domain}`)).filter((t) => t.toLowerCase().startsWith('v=dmarc1'));
|
|
67
|
+
if (recs.length === 0) {
|
|
68
|
+
return {
|
|
69
|
+
verdict: 'fail',
|
|
70
|
+
record: null,
|
|
71
|
+
findings: [{ level: 'fail', text: `No DMARC record at _dmarc.${domain} — Gmail/Yahoo require it for bulk senders.` }],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const findings = [];
|
|
75
|
+
if (recs.length > 1)
|
|
76
|
+
findings.push({ level: 'fail', text: 'Multiple DMARC records — receivers ignore the policy.' });
|
|
77
|
+
const record = recs[0];
|
|
78
|
+
const tags = Object.fromEntries(record
|
|
79
|
+
.split(';')
|
|
80
|
+
.map((p) => p.trim())
|
|
81
|
+
.filter(Boolean)
|
|
82
|
+
.map((p) => {
|
|
83
|
+
const i = p.indexOf('=');
|
|
84
|
+
return [p.slice(0, i).trim().toLowerCase(), p.slice(i + 1).trim()];
|
|
85
|
+
}));
|
|
86
|
+
const policy = (tags.p ?? '').toLowerCase();
|
|
87
|
+
if (policy === 'reject')
|
|
88
|
+
findings.push({ level: 'pass', text: 'p=reject — strongest policy.' });
|
|
89
|
+
else if (policy === 'quarantine')
|
|
90
|
+
findings.push({ level: 'warn', text: 'p=quarantine — spoofed mail to spam; move to reject.' });
|
|
91
|
+
else if (policy === 'none')
|
|
92
|
+
findings.push({ level: 'warn', text: 'p=none — monitoring only, no enforcement.' });
|
|
93
|
+
else
|
|
94
|
+
findings.push({ level: 'fail', text: 'Missing/invalid p= policy — record ignored.' });
|
|
95
|
+
if (!tags.rua)
|
|
96
|
+
findings.push({ level: 'warn', text: 'No rua= — no aggregate-report visibility.' });
|
|
97
|
+
else
|
|
98
|
+
findings.push({ level: 'pass', text: 'Aggregate reports (rua) configured.' });
|
|
99
|
+
if (tags.pct && tags.pct !== '100')
|
|
100
|
+
findings.push({ level: 'warn', text: `pct=${tags.pct} — applies to only ${tags.pct}% of mail.` });
|
|
101
|
+
return { verdict: rollup(findings), record, findings };
|
|
102
|
+
}
|
|
103
|
+
// Spamhaus DBL. Mirrors lib/pipeline/stages/blocklist-check.ts in the app
|
|
104
|
+
// (this package can't import it): NXDOMAIN = clean, 127.0.x.x = listed, and
|
|
105
|
+
// 127.255.255.x = Spamhaus REFUSED the query (public resolver / rate limit /
|
|
106
|
+
// bad key) — `unknown`, never a listing, and kept out of the overall verdict.
|
|
107
|
+
// SPAMHAUS_DQS_KEY (optional) switches to the DQS zone; it never reaches the
|
|
108
|
+
// output.
|
|
109
|
+
async function dbl(domain) {
|
|
110
|
+
const key = process.env.SPAMHAUS_DQS_KEY;
|
|
111
|
+
const zone = key ? `${key}.dbl.dq.spamhaus.net` : 'dbl.spamhaus.org';
|
|
112
|
+
const publicZone = key ? 'dbl.dq.spamhaus.net' : zone;
|
|
113
|
+
let answers;
|
|
114
|
+
try {
|
|
115
|
+
answers = await dns.resolve4(`${domain}.${zone}`);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
const code = err.code;
|
|
119
|
+
if (code === 'ENOTFOUND' || code === 'ENODATA') {
|
|
120
|
+
return { status: 'clean', zone: publicZone, verdict: 'pass', record: null, findings: [{ level: 'pass', text: `Not listed on ${publicZone}.` }] };
|
|
121
|
+
}
|
|
122
|
+
return { status: 'unknown', zone: publicZone, verdict: 'warn', record: null, findings: [{ level: 'warn', text: `Could not check ${publicZone} (${code ?? 'lookup failed'}) — not a listing.` }] };
|
|
123
|
+
}
|
|
124
|
+
const refused = answers.filter((a) => a.startsWith('127.255.255.'));
|
|
125
|
+
if (refused.length) {
|
|
126
|
+
return { status: 'unknown', zone: publicZone, verdict: 'warn', record: null, findings: [{ level: 'warn', text: `Could not check ${publicZone} (query refused by list (${refused.join(',')})) — not a listing.` }] };
|
|
127
|
+
}
|
|
128
|
+
const listed = answers.filter((a) => a.startsWith('127.'));
|
|
129
|
+
if (!listed.length) {
|
|
130
|
+
return { status: 'clean', zone: publicZone, verdict: 'pass', record: null, findings: [{ level: 'pass', text: `Not listed on ${publicZone}.` }] };
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
status: 'listed',
|
|
134
|
+
zone: publicZone,
|
|
135
|
+
verdict: 'fail',
|
|
136
|
+
record: listed.join(','),
|
|
137
|
+
findings: [{ level: 'fail', text: `Listed on ${publicZone} (${listed.join(', ')}) — mail linking this domain is widely blocked; delist before sending.` }],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export async function checkDeliverability(rawInput) {
|
|
141
|
+
const input = CheckDeliverabilityInput.parse(rawInput);
|
|
142
|
+
const domain = normalizeDomain(input.domain);
|
|
143
|
+
if (!domain) {
|
|
144
|
+
return {
|
|
145
|
+
error: {
|
|
146
|
+
code: 'mcp.invalid_domain',
|
|
147
|
+
message: `Not a valid domain: "${input.domain}". Pass a bare domain like example.com.`,
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
const [spfSection, dmarcSection, dblSection] = await Promise.all([spf(domain), dmarc(domain), dbl(domain)]);
|
|
152
|
+
// An `unknown` blocklist result never moves the overall verdict.
|
|
153
|
+
const overall = worst(worst(spfSection.verdict, dmarcSection.verdict), dblSection.status === 'unknown' ? 'pass' : dblSection.verdict);
|
|
154
|
+
return {
|
|
155
|
+
domain,
|
|
156
|
+
overall_verdict: overall,
|
|
157
|
+
spf: spfSection,
|
|
158
|
+
dmarc: dmarcSection,
|
|
159
|
+
blocklist: dblSection,
|
|
160
|
+
note: overall === 'pass'
|
|
161
|
+
? 'DNS auth looks healthy. CogniLead manages warmed pools + reputation on top of this.'
|
|
162
|
+
: 'Fix the findings above before sending cold — or let CogniLead provision and monitor it for you.',
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=check-deliverability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-deliverability.js","sourceRoot":"","sources":["../../src/tools/check-deliverability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topup-link.d.ts","sourceRoot":"","sources":["../../src/tools/create-topup-link.ts"],"names":[],"mappings":"AAWA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// cognilead.create_topup_link — gated.
|
|
2
|
+
//
|
|
3
|
+
// POSTs to ${COGNILEAD_API_URL}/api/v1/customers/:id/topup and returns the
|
|
4
|
+
// Stripe Checkout { url }. The LLM discovers this tool and hands its human a
|
|
5
|
+
// funding link; the human pays, and the webhook credits the customer's
|
|
6
|
+
// prepaid balance (credit_ledger). Requires a CogniLead API key.
|
|
7
|
+
import { CreateTopupLinkInput } from '../schemas.js';
|
|
8
|
+
import { apiPost } from '../api-client.js';
|
|
9
|
+
import { assertGatedAccess } from '../auth.js';
|
|
10
|
+
export async function createTopupLink(rawInput) {
|
|
11
|
+
assertGatedAccess();
|
|
12
|
+
const { customer_id, amount_usd } = CreateTopupLinkInput.parse(rawInput);
|
|
13
|
+
return apiPost(`/api/v1/customers/${encodeURIComponent(customer_id)}/topup`, { amount_usd });
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=create-topup-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topup-link.js","sourceRoot":"","sources":["../../src/tools/create-topup-link.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,uEAAuE;AACvE,iEAAiE;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiB;IACrD,iBAAiB,EAAE,CAAA;IACnB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACxE,OAAO,OAAO,CACZ,qBAAqB,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAC5D,EAAE,UAAU,EAAE,CACf,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-billing-usage.d.ts","sourceRoot":"","sources":["../../src/tools/get-billing-usage.ts"],"names":[],"mappings":"AAQA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAIzE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// cognilead.get_billing_usage — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/billing/usage with Bearer auth.
|
|
4
|
+
import { EmptyInput } from '../schemas.js';
|
|
5
|
+
import { apiGet } from '../api-client.js';
|
|
6
|
+
import { assertGatedAccess } from '../auth.js';
|
|
7
|
+
export async function getBillingUsage(rawInput) {
|
|
8
|
+
assertGatedAccess();
|
|
9
|
+
EmptyInput.parse(rawInput ?? {});
|
|
10
|
+
return apiGet('/api/v1/billing/usage');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=get-billing-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-billing-usage.js","sourceRoot":"","sources":["../../src/tools/get-billing-usage.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,mEAAmE;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiB;IACrD,iBAAiB,EAAE,CAAA;IACnB,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-deliverability.d.ts","sourceRoot":"","sources":["../../src/tools/get-deliverability.ts"],"names":[],"mappings":"AAQA,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// cognilead.get_deliverability — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/deliverability with Bearer auth.
|
|
4
|
+
import { EmptyInput } from '../schemas.js';
|
|
5
|
+
import { apiGet } from '../api-client.js';
|
|
6
|
+
import { assertGatedAccess } from '../auth.js';
|
|
7
|
+
export async function getDeliverability(rawInput) {
|
|
8
|
+
assertGatedAccess();
|
|
9
|
+
EmptyInput.parse(rawInput ?? {});
|
|
10
|
+
return apiGet('/api/v1/deliverability');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=get-deliverability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-deliverability.js","sourceRoot":"","sources":["../../src/tools/get-deliverability.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAiB;IACvD,iBAAiB,EAAE,CAAA;IACnB,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-subscription.d.ts","sourceRoot":"","sources":["../../src/tools/get-subscription.ts"],"names":[],"mappings":"AAQA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAIzE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// cognilead.get_subscription — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/billing/subscription with Bearer auth.
|
|
4
|
+
import { EmptyInput } from '../schemas.js';
|
|
5
|
+
import { apiGet } from '../api-client.js';
|
|
6
|
+
import { assertGatedAccess } from '../auth.js';
|
|
7
|
+
export async function getSubscription(rawInput) {
|
|
8
|
+
assertGatedAccess();
|
|
9
|
+
EmptyInput.parse(rawInput ?? {});
|
|
10
|
+
return apiGet('/api/v1/billing/subscription');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=get-subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-subscription.js","sourceRoot":"","sources":["../../src/tools/get-subscription.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAiB;IACrD,iBAAiB,EAAE,CAAA;IACnB,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,8BAA8B,CAAC,CAAA;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AASA,wBAAsB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// cognilead.health — FREE, public, no API key.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/health without auth headers — mirrors the
|
|
4
|
+
// free/local tool pattern so an agent can probe service availability before
|
|
5
|
+
// configuring a key.
|
|
6
|
+
import { EmptyInput } from '../schemas.js';
|
|
7
|
+
import { apiGet } from '../api-client.js';
|
|
8
|
+
export async function health(rawInput) {
|
|
9
|
+
EmptyInput.parse(rawInput ?? {});
|
|
10
|
+
return apiGet('/api/v1/health', { auth: false });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/tools/health.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,qBAAqB;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAiB;IAC5C,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAClD,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// POSTs to ${COGNILEAD_API_URL}/api/v1/leads with Bearer auth. The hosted
|
|
4
4
|
// endpoint runs the same `intersect` stage we'd run locally (suppression,
|
|
5
|
-
// dedup
|
|
5
|
+
// dedup). 409 with a suppression reason is the most
|
|
6
6
|
// likely failure path — we re-surface it as a structured message.
|
|
7
7
|
import { IngestLeadInput } from '../schemas.js';
|
|
8
8
|
import { apiPost } from '../api-client.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-lead.js","sourceRoot":"","sources":["../../src/tools/ingest-lead.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"ingest-lead.js","sourceRoot":"","sources":["../../src/tools/ingest-lead.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,oDAAoD;AACpD,kEAAkE;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAiB;IAChD,iBAAiB,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE7C,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAA0D,CAAA;QACtE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,oCAAoC,GAAG,CAAC,OAAO,IAAI,gBAAgB,IAAI;gBACrE,qEAAqE;gBACrE,0EAA0E,CAC7E,CAAA;QACH,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-api-keys.d.ts","sourceRoot":"","sources":["../../src/tools/list-api-keys.ts"],"names":[],"mappings":"AASA,wBAAsB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAIrE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// cognilead.list_api_keys — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/keys with Bearer auth. The hosted API
|
|
4
|
+
// returns metadata only — hashes/secrets are stripped server-side.
|
|
5
|
+
import { EmptyInput } from '../schemas.js';
|
|
6
|
+
import { apiGet } from '../api-client.js';
|
|
7
|
+
import { assertGatedAccess } from '../auth.js';
|
|
8
|
+
export async function listApiKeys(rawInput) {
|
|
9
|
+
assertGatedAccess();
|
|
10
|
+
EmptyInput.parse(rawInput ?? {});
|
|
11
|
+
return apiGet('/api/v1/keys');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=list-api-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-api-keys.js","sourceRoot":"","sources":["../../src/tools/list-api-keys.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,yEAAyE;AACzE,mEAAmE;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAiB;IACjD,iBAAiB,EAAE,CAAA;IACnB,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAA;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-leads.d.ts","sourceRoot":"","sources":["../../src/tools/list-leads.ts"],"names":[],"mappings":"AASA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// cognilead.list_leads — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/leads with Bearer auth. Optional
|
|
4
|
+
// limit/cursor become query params. Returns { leads, next_cursor } verbatim.
|
|
5
|
+
import { ListLeadsInput } from '../schemas.js';
|
|
6
|
+
import { apiGet } from '../api-client.js';
|
|
7
|
+
import { assertGatedAccess } from '../auth.js';
|
|
8
|
+
export async function listLeads(rawInput) {
|
|
9
|
+
assertGatedAccess();
|
|
10
|
+
const input = ListLeadsInput.parse(rawInput);
|
|
11
|
+
const qs = new URLSearchParams();
|
|
12
|
+
if (input.limit != null)
|
|
13
|
+
qs.set('limit', String(input.limit));
|
|
14
|
+
if (input.cursor)
|
|
15
|
+
qs.set('cursor', input.cursor);
|
|
16
|
+
const suffix = qs.toString() ? `?${qs.toString()}` : '';
|
|
17
|
+
return apiGet(`/api/v1/leads${suffix}`);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=list-leads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-leads.js","sourceRoot":"","sources":["../../src/tools/list-leads.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,oEAAoE;AACpE,6EAA6E;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAiB;IAC/C,iBAAiB,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAA;IAChC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,MAAM;QAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,OAAO,MAAM,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sends.d.ts","sourceRoot":"","sources":["../../src/tools/list-sends.ts"],"names":[],"mappings":"AASA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// cognilead.list_sends — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/sends?lead_id=... with Bearer auth.
|
|
4
|
+
// lead_id is REQUIRED. Returns { sends, next_cursor } verbatim.
|
|
5
|
+
import { ListSendsInput } from '../schemas.js';
|
|
6
|
+
import { apiGet } from '../api-client.js';
|
|
7
|
+
import { assertGatedAccess } from '../auth.js';
|
|
8
|
+
export async function listSends(rawInput) {
|
|
9
|
+
assertGatedAccess();
|
|
10
|
+
const input = ListSendsInput.parse(rawInput);
|
|
11
|
+
const qs = new URLSearchParams({ lead_id: input.lead_id });
|
|
12
|
+
if (input.limit != null)
|
|
13
|
+
qs.set('limit', String(input.limit));
|
|
14
|
+
if (input.cursor)
|
|
15
|
+
qs.set('cursor', input.cursor);
|
|
16
|
+
return apiGet(`/api/v1/sends?${qs.toString()}`);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=list-sends.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-sends.js","sourceRoot":"","sources":["../../src/tools/list-sends.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAiB;IAC/C,iBAAiB,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,MAAM;QAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-suppressions.d.ts","sourceRoot":"","sources":["../../src/tools/list-suppressions.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ1E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// cognilead.list_suppressions — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/suppressions with Bearer auth. Optional
|
|
4
|
+
// limit/cursor become query params.
|
|
5
|
+
import { ListSuppressionsInput } from '../schemas.js';
|
|
6
|
+
import { apiGet } from '../api-client.js';
|
|
7
|
+
import { assertGatedAccess } from '../auth.js';
|
|
8
|
+
export async function listSuppressions(rawInput) {
|
|
9
|
+
assertGatedAccess();
|
|
10
|
+
const input = ListSuppressionsInput.parse(rawInput);
|
|
11
|
+
const qs = new URLSearchParams();
|
|
12
|
+
if (input.limit != null)
|
|
13
|
+
qs.set('limit', String(input.limit));
|
|
14
|
+
if (input.cursor)
|
|
15
|
+
qs.set('cursor', input.cursor);
|
|
16
|
+
const suffix = qs.toString() ? `?${qs.toString()}` : '';
|
|
17
|
+
return apiGet(`/api/v1/suppressions${suffix}`);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=list-suppressions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-suppressions.js","sourceRoot":"","sources":["../../src/tools/list-suppressions.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,oCAAoC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAiB;IACtD,iBAAiB,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAA;IAChC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;QAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7D,IAAI,KAAK,CAAC,MAAM;QAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,OAAO,MAAM,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-webhooks.d.ts","sourceRoot":"","sources":["../../src/tools/list-webhooks.ts"],"names":[],"mappings":"AAQA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAItE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// cognilead.list_webhooks — gated, read-only.
|
|
2
|
+
//
|
|
3
|
+
// GETs ${COGNILEAD_API_URL}/api/v1/webhooks with Bearer auth.
|
|
4
|
+
import { EmptyInput } from '../schemas.js';
|
|
5
|
+
import { apiGet } from '../api-client.js';
|
|
6
|
+
import { assertGatedAccess } from '../auth.js';
|
|
7
|
+
export async function listWebhooks(rawInput) {
|
|
8
|
+
assertGatedAccess();
|
|
9
|
+
EmptyInput.parse(rawInput ?? {});
|
|
10
|
+
return apiGet('/api/v1/webhooks');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=list-webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-webhooks.js","sourceRoot":"","sources":["../../src/tools/list-webhooks.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,8DAA8D;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAiB;IAClD,iBAAiB,EAAE,CAAA;IACnB,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-campaign.d.ts","sourceRoot":"","sources":["../../src/tools/run-campaign.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-campaign.d.ts","sourceRoot":"","sources":["../../src/tools/run-campaign.ts"],"names":[],"mappings":"AAgBA,wBAAsB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrE"}
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
//
|
|
3
3
|
// POSTs to ${COGNILEAD_API_URL}/api/v1/campaigns/:id/run with Bearer
|
|
4
4
|
// auth. Returns the API's dispatch result verbatim. lead_ids is optional —
|
|
5
|
-
// when omitted the API
|
|
5
|
+
// when omitted the API dispatches every due step queued for the campaign.
|
|
6
|
+
//
|
|
7
|
+
// The endpoint reuses the CogniLead scheduler: it re-checks suppression,
|
|
8
|
+
// reply, and quota gates before delivering each step, activates a
|
|
9
|
+
// draft/paused campaign so the cadence keeps advancing, and returns a
|
|
10
|
+
// dispatch summary ({ campaign_id, status, processed, sent, skipped, ... }).
|
|
11
|
+
// A 202 means the campaign was enqueued but nothing was immediately due.
|
|
6
12
|
import { RunCampaignInput } from '../schemas.js';
|
|
7
13
|
import { apiPost } from '../api-client.js';
|
|
8
14
|
import { assertGatedAccess } from '../auth.js';
|
|
@@ -10,6 +16,6 @@ export async function runCampaign(rawInput) {
|
|
|
10
16
|
assertGatedAccess();
|
|
11
17
|
const input = RunCampaignInput.parse(rawInput);
|
|
12
18
|
const path = `/api/v1/campaigns/${encodeURIComponent(input.campaign_id)}/run`;
|
|
13
|
-
return apiPost(path, { lead_ids: input.lead_ids ?? null });
|
|
19
|
+
return await apiPost(path, { lead_ids: input.lead_ids ?? null });
|
|
14
20
|
}
|
|
15
21
|
//# sourceMappingURL=run-campaign.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-campaign.js","sourceRoot":"","sources":["../../src/tools/run-campaign.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,qEAAqE;AACrE,2EAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"run-campaign.js","sourceRoot":"","sources":["../../src/tools/run-campaign.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,qEAAqE;AACrE,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,yEAAyE;AACzE,kEAAkE;AAClE,sEAAsE;AACtE,6EAA6E;AAC7E,yEAAyE;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAiB;IACjD,iBAAiB,EAAE,CAAA;IACnB,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE9C,MAAM,IAAI,GAAG,qBAAqB,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAA;IAC7E,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAA;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-signal.d.ts","sourceRoot":"","sources":["../../src/tools/score-signal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"score-signal.d.ts","sourceRoot":"","sources":["../../src/tools/score-signal.ts"],"names":[],"mappings":"AAwEA,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC/C,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,CAAA;QACtB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,GAAG,WAAW,CAAA;CACtC;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0D/E"}
|
|
@@ -27,7 +27,6 @@ const TOOL = 'cognilead.score_signal';
|
|
|
27
27
|
// Product-keyword maps — when a target_product matches a row, those
|
|
28
28
|
// keywords are the ones the scorer looks for in the signal description.
|
|
29
29
|
const PRODUCT_KEYWORDS = {
|
|
30
|
-
chainlog: ['audit', 'audit log', 'compliance', 'sox', 'gdpr', 'soc 2', 'evidence', 'tamper'],
|
|
31
30
|
payprimitives: ['iso 20022', 'pain.008', 'sepa', 'payment', 'reconciliation', 'card', 'acquirer'],
|
|
32
31
|
medisuisse: ['fhir', 'hipaa', 'patient', 'ehr', 'epic', 'cerner', 'health record'],
|
|
33
32
|
agentgate: ['llm', 'agent', 'guardrail', 'prompt injection', 'safety'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-signal.js","sourceRoot":"","sources":["../../src/tools/score-signal.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,0BAA0B;AAC1B,sEAAsE;AACtE,sEAAsE;AACtE,uEAAuE;AACvE,0EAA0E;AAC1E,MAAM;AACN,EAAE;AACF,uEAAuE;AACvE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,uDAAuD;AACvD,EAAE;AACF,sBAAsB;AACtB,sBAAsB;AACtB,wDAAwD;AACxD,qBAAqB;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,IAAI,GAAG,wBAAwB,CAAA;AAErC,oEAAoE;AACpE,wEAAwE;AACxE,MAAM,gBAAgB,GAA6B;IACjD,
|
|
1
|
+
{"version":3,"file":"score-signal.js","sourceRoot":"","sources":["../../src/tools/score-signal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cognilead/mcp-server",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Model Context Protocol server for CogniLead —
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Model Context Protocol server for CogniLead — tools (draft_pitch, score_signal, check_deliverability, ingest_lead, run_campaign, suppress, create_topup_link), Resources (sends, suppressions, warmed-pool, docs), and Prompts (cold-outbound-sequence, deliverability-triage, warmup-plan) for Cursor, Claude Desktop, Windsurf.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"cognilead-mcp": "./dist/index.js"
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"LICENSE"
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
|
-
"
|
|
24
|
+
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
25
|
+
"build": "npm run clean && tsc",
|
|
25
26
|
"dev": "tsx src/index.ts",
|
|
26
27
|
"typecheck": "tsc --noEmit",
|
|
27
28
|
"start": "node dist/index.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-registry-flags.d.ts","sourceRoot":"","sources":["../../src/tools/check-registry-flags.ts"],"names":[],"mappings":"AAWA,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBzE"}
|