@agifyai/leadify-mcp 9.7.0 → 9.7.2

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.
@@ -0,0 +1,95 @@
1
+ import { z } from "zod";
2
+ // Portable Zod 3 projection of the Leadify agent-outreach contracts (PRD-2592).
3
+ export const identifier = z.string().min(1).max(200).regex(/^\S+(?![\s\S])/);
4
+ const exactText = z.string().max(20000);
5
+ const version = z.string().min(1).max(200);
6
+ const date = z.string().datetime({ offset: true });
7
+ export const scope = { organization_id: identifier, program_id: identifier };
8
+ export const channel = z.enum(["GMAIL", "LINKEDIN"]);
9
+ const targetShape = { channel, kind: z.enum(["MESSAGE", "INVITATION"]) };
10
+ const validTarget = (v) => v.kind !== "INVITATION" || v.channel === "LINKEDIN";
11
+ const target = z.object(targetShape).strict().refine(validTarget, "Les invitations concernent LinkedIn.");
12
+ const count = z.object({ ...targetShape, min: z.number().int().min(0).max(1000000).optional(), max: z.number().int().min(0).max(1000000).optional() }).strict()
13
+ .refine(validTarget, "Les invitations concernent LinkedIn.")
14
+ .refine(v => (v.min !== undefined || v.max !== undefined) && (v.min === undefined || v.max === undefined || v.min <= v.max), "Vérifiez les bornes du compteur.");
15
+ export const filters = z.object({
16
+ group_id: identifier.optional(),
17
+ signal_filter: z.object({ detected_since: date.optional(), detected_before: date.optional(),
18
+ levels: z.array(z.enum(["STRONG", "GOLDEN", "CRITICAL"])).min(1).max(3).optional(),
19
+ scope: z.enum(["PERSON", "COMPANY", "BOTH"]).optional(),
20
+ }).strict().refine(v => !v.detected_since || !v.detected_before || Date.parse(v.detected_since) < Date.parse(v.detected_before), "Le début doit précéder la fin.").optional(),
21
+ last_confirmed_outbound_before: z.object({ channel: z.enum(["any", "GMAIL", "LINKEDIN"]), before: date }).strict().optional(),
22
+ counts: z.array(count).max(6).optional(), never_on: z.array(target).max(3).optional(),
23
+ pending: z.boolean().optional(), unknown: z.boolean().optional(), reply: z.enum(["TO_HANDLE", "WAITING", "NONE"]).optional(), excluded: z.boolean().optional(),
24
+ }).strict();
25
+ export const context = z.object({
26
+ contract_version: z.literal("agent-writing-context.v1"), context_version: version, facts_version: version, read_at: date,
27
+ versions: z.object({ identity: version, qualification: version, signals: version, conversation: version,
28
+ contactState: version, exclusion: version, authorization: version, workspace: version }).strict()
29
+ .describe("Copy the versions object from get_outreach_prospect_context unchanged, including contactState."),
30
+ }).strict();
31
+ export const message = z.object({
32
+ channel, action: z.enum(["MESSAGE", "INVITATION"]), sender_id: identifier, account_key: z.string().min(1).max(1000),
33
+ recipient: exactText.min(1), subject: exactText.nullable(), body: exactText,
34
+ thread_id: identifier.nullable(), expected_inbound_id: identifier.nullable(),
35
+ technical_parts: z.object({ signature: exactText, unsubscribe: exactText }).strict(),
36
+ }).strict().superRefine((v, ctx) => {
37
+ const issue = (path, message) => ctx.addIssue({ code: "custom", path, message });
38
+ if (v.channel === "GMAIL") {
39
+ if (v.action !== "MESSAGE")
40
+ issue(["action"], "Une invitation concerne seulement LinkedIn.");
41
+ if (!v.subject)
42
+ issue(["subject"], "Renseignez le sujet de cet e-mail.");
43
+ }
44
+ else {
45
+ if (v.subject !== null)
46
+ issue(["subject"], "Le sujet LinkedIn doit être null.");
47
+ for (const part of ["signature", "unsubscribe"])
48
+ if (v.technical_parts[part] !== "")
49
+ issue(["technical_parts", part], "Ce champ doit rester vide pour LinkedIn.");
50
+ }
51
+ if (v.action === "MESSAGE" && !v.body.length)
52
+ issue(["body"], "Renseignez le texte du message.");
53
+ });
54
+ export const decision = z.object({
55
+ agent_cycle_id: z.string().min(1).max(200).regex(/^[^\s\u0000-\u001f\u007f]+$/).optional().describe("Exact existing agent cycle identifier; omit when unavailable, never invent one."),
56
+ request_key: z.string().min(1).max(200), lead_id: identifier, person_id: identifier,
57
+ purpose: z.enum(["FIRST_CONTACT", "FOLLOW_UP", "REPLY"]), reason: z.string().min(1).max(2000),
58
+ sources: z.array(z.object({ label: exactText.min(1), url: z.string().url().max(20000) }).strict()).max(20),
59
+ context, authorization_revision: z.number().int().positive(), messages: z.array(message).min(1).max(2),
60
+ }).strict().superRefine((v, ctx) => {
61
+ const channels = new Set();
62
+ v.messages.forEach((m, index) => {
63
+ if (channels.has(m.channel))
64
+ ctx.addIssue({ code: "custom", path: ["messages", index, "channel"], message: "Au plus un message par canal et par décision." });
65
+ channels.add(m.channel);
66
+ if (v.purpose === "REPLY")
67
+ for (const field of ["thread_id", "expected_inbound_id"]) {
68
+ if (m[field] === null)
69
+ ctx.addIssue({ code: "custom", path: ["messages", index, field], message: "Une réponse désigne le fil et le message reçu." });
70
+ }
71
+ });
72
+ });
73
+ export const querySchema = z.object({ ...scope, recipe: z.enum(["never_contacted", "followup_due", "channel_gap", "replies_to_handle"]).optional(),
74
+ filters: filters.default({}), limit: z.number().int().min(1).max(50).default(25), cursor: z.string().min(1).max(300).optional(),
75
+ }).strict();
76
+ export const submitSchema = z.object({ ...scope, decisions: z.array(decision).min(1).max(20) }).strict();
77
+ export const acknowledgeSchema = z.object({ ...scope, cursor: z.string().min(1).max(2000),
78
+ receipts: z.array(z.object({ change_id: z.string().regex(/^[1-9]\d{0,18}$/).refine(v => /^[1-9]\d{0,18}$/.test(v) && BigInt(v) <= 9223372036854775807n),
79
+ status: z.enum(["PROCESSED", "DISMISSED"]), reason: z.string().trim().min(1).max(2000) }).strict()).min(1).max(100).refine(receipts => new Set(receipts.map(r => r.change_id)).size === receipts.length, "Chaque changement doit être indiqué une seule fois."),
80
+ }).strict();
81
+ export function queryBody(v) {
82
+ const f = v.filters;
83
+ return { recipe: v.recipe, limit: v.limit, cursor: v.cursor, filters: {
84
+ groupId: f.group_id, signalFilter: f.signal_filter && { detectedSince: f.signal_filter.detected_since, detectedBefore: f.signal_filter.detected_before, levels: f.signal_filter.levels, scope: f.signal_filter.scope },
85
+ lastConfirmedOutboundBefore: f.last_confirmed_outbound_before, counts: f.counts, neverOn: f.never_on,
86
+ pending: f.pending, unknown: f.unknown, reply: f.reply, excluded: f.excluded,
87
+ } };
88
+ }
89
+ export function decisionBody(d) {
90
+ return { ...(d.agent_cycle_id !== undefined ? { agentCycleId: d.agent_cycle_id } : {}), requestKey: d.request_key, leadId: d.lead_id, personId: d.person_id, purpose: d.purpose, reason: d.reason, sources: d.sources,
91
+ context: { contractVersion: d.context.contract_version, contextVersion: d.context.context_version, factsVersion: d.context.facts_version,
92
+ readAt: d.context.read_at, versions: d.context.versions }, authorizationRevision: d.authorization_revision,
93
+ messages: d.messages.map(m => ({ channel: m.channel, action: m.action, senderId: m.sender_id, accountKey: m.account_key,
94
+ recipient: m.recipient, subject: m.subject, body: m.body, threadId: m.thread_id, expectedInboundId: m.expected_inbound_id, technicalParts: m.technical_parts })) };
95
+ }
@@ -1,3 +1,4 @@
1
+ import { OUTREACH_MCP_CONTRACT, OUTREACH_SERVER_CONTRACTS, OUTREACH_TOOL_NAMES, requireOutreachVersion, outreachError } from "./agent_outreach.js";
1
2
  import { getClient } from "../client.js";
2
3
  import { toolResult, handleToolError } from "../types.js";
3
4
  import { z } from "zod";
@@ -12,6 +13,7 @@ export function projectMcpRuntimeInfo(data, organizationId) {
12
13
  version: MCP_VERSION,
13
14
  organization: organization ? { id: organization.id, name: organization.name ?? null, slug: organization.slug ?? null } : null,
14
15
  organizationAccessible: Boolean(organization),
16
+ outreach: { contract: OUTREACH_MCP_CONTRACT, tools: OUTREACH_TOOL_NAMES, expectedServerContracts: OUTREACH_SERVER_CONTRACTS, serverCompatibility: "NOT_CHECKED", administrativeAuthority: false },
15
17
  readOnly: true,
16
18
  writes: 0,
17
19
  sends: 0,
@@ -33,10 +35,21 @@ export function registerAuthTools(server, injectedClient) {
33
35
  });
34
36
  server.tool("get_mcp_runtime_info", "Read the exact Leadify MCP package/server version and verify that one explicitly selected organization is accessible to the configured API key. This diagnostic is read-only: it never reads prospects and never writes, sends, schedules, publishes, or activates anything.", {
35
37
  organization_id: z.string().min(1).describe("Exact organization ID selected by the caller. The server never chooses an organization implicitly."),
36
- }, async ({ organization_id }) => {
38
+ probe_outreach: z.boolean().default(false).describe("Also probe the program contract without reading prospects. This does not prove every server capability or authorize sends."),
39
+ }, async ({ organization_id, probe_outreach }) => {
37
40
  try {
38
41
  const data = await (injectedClient ?? getClient()).get("/api/organizations");
39
- return toolResult(projectMcpRuntimeInfo(data, organization_id));
42
+ const result = projectMcpRuntimeInfo(data, organization_id);
43
+ if (probe_outreach && result.organizationAccessible) {
44
+ try {
45
+ const observed = requireOutreachVersion(await (injectedClient ?? getClient()).get("/api/agent-outreach/programs", new URLSearchParams({ organizationId: organization_id, limit: "1" })), "1.0.0");
46
+ result.outreach = { ...result.outreach, serverCompatibility: "PROGRAM_CONTRACT_VERIFIED", observedProgramContract: observed.contractVersion, otherServerCapabilities: "NOT_CHECKED" };
47
+ }
48
+ catch (error) {
49
+ result.outreach = { ...result.outreach, serverCompatibility: "UNAVAILABLE_OR_INCOMPATIBLE", error: JSON.parse(outreachError(error).content[0].text) };
50
+ }
51
+ }
52
+ return toolResult(result);
40
53
  }
41
54
  catch (error) {
42
55
  return handleToolError(error);
@@ -31,13 +31,13 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
31
31
  explanation: z.ZodOptional<z.ZodString>;
32
32
  }, "strict", z.ZodTypeAny, {
33
33
  value: string;
34
- id: string;
35
34
  label: string;
35
+ id: string;
36
36
  explanation?: string | undefined;
37
37
  }, {
38
38
  value: string;
39
- id: string;
40
39
  label: string;
40
+ id: string;
41
41
  explanation?: string | undefined;
42
42
  }>, "many">>;
43
43
  customerCaseIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -47,13 +47,13 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
47
47
  description: z.ZodOptional<z.ZodString>;
48
48
  customerCaseIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
49
49
  }, "strict", z.ZodTypeAny, {
50
- title: string;
51
50
  id: string;
51
+ title: string;
52
52
  description?: string | undefined;
53
53
  customerCaseIds?: string[] | undefined;
54
54
  }, {
55
- title: string;
56
55
  id: string;
56
+ title: string;
57
57
  description?: string | undefined;
58
58
  customerCaseIds?: string[] | undefined;
59
59
  }>, "many">>;
@@ -64,14 +64,14 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
64
64
  useCaseIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
65
65
  customerCaseIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
66
66
  }, "strict", z.ZodTypeAny, {
67
- title: string;
68
67
  id: string;
68
+ title: string;
69
69
  description?: string | undefined;
70
70
  customerCaseIds?: string[] | undefined;
71
71
  useCaseIds?: string[] | undefined;
72
72
  }, {
73
- title: string;
74
73
  id: string;
74
+ title: string;
75
75
  description?: string | undefined;
76
76
  customerCaseIds?: string[] | undefined;
77
77
  useCaseIds?: string[] | undefined;
@@ -82,13 +82,13 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
82
82
  example: z.ZodOptional<z.ZodString>;
83
83
  meaning: z.ZodOptional<z.ZodString>;
84
84
  }, "strict", z.ZodTypeAny, {
85
- title: string;
86
85
  id: string;
86
+ title: string;
87
87
  example?: string | undefined;
88
88
  meaning?: string | undefined;
89
89
  }, {
90
- title: string;
91
90
  id: string;
91
+ title: string;
92
92
  example?: string | undefined;
93
93
  meaning?: string | undefined;
94
94
  }>, "many">>;
@@ -97,12 +97,12 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
97
97
  title: z.ZodString;
98
98
  description: z.ZodOptional<z.ZodString>;
99
99
  }, "strict", z.ZodTypeAny, {
100
- title: string;
101
100
  id: string;
101
+ title: string;
102
102
  description?: string | undefined;
103
103
  }, {
104
- title: string;
105
104
  id: string;
105
+ title: string;
106
106
  description?: string | undefined;
107
107
  }>, "many">>;
108
108
  competitors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -110,12 +110,12 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
110
110
  title: z.ZodString;
111
111
  description: z.ZodOptional<z.ZodString>;
112
112
  }, "strict", z.ZodTypeAny, {
113
- title: string;
114
113
  id: string;
114
+ title: string;
115
115
  description?: string | undefined;
116
116
  }, {
117
- title: string;
118
117
  id: string;
118
+ title: string;
119
119
  description?: string | undefined;
120
120
  }>, "many">>;
121
121
  objections: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -138,12 +138,12 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
138
138
  title: z.ZodString;
139
139
  description: z.ZodOptional<z.ZodString>;
140
140
  }, "strict", z.ZodTypeAny, {
141
- title: string;
142
141
  id: string;
142
+ title: string;
143
143
  description?: string | undefined;
144
144
  }, {
145
- title: string;
146
145
  id: string;
146
+ title: string;
147
147
  description?: string | undefined;
148
148
  }>, "many">>;
149
149
  regulatoryInformation: z.ZodOptional<z.ZodString>;
@@ -162,8 +162,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
162
162
  }>, "many">>;
163
163
  }, "strict", z.ZodTypeAny, {
164
164
  painPoints?: {
165
- title: string;
166
165
  id: string;
166
+ title: string;
167
167
  description?: string | undefined;
168
168
  customerCaseIds?: string[] | undefined;
169
169
  useCaseIds?: string[] | undefined;
@@ -171,8 +171,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
171
171
  allowedVocabulary?: string[] | undefined;
172
172
  prohibitedVocabulary?: string[] | undefined;
173
173
  legalConstraints?: {
174
- title: string;
175
174
  id: string;
175
+ title: string;
176
176
  description?: string | undefined;
177
177
  }[] | undefined;
178
178
  customerCaseIds?: string[] | undefined;
@@ -188,30 +188,30 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
188
188
  } | undefined;
189
189
  marketMetrics?: {
190
190
  value: string;
191
- id: string;
192
191
  label: string;
192
+ id: string;
193
193
  explanation?: string | undefined;
194
194
  }[] | undefined;
195
195
  useCases?: {
196
- title: string;
197
196
  id: string;
197
+ title: string;
198
198
  description?: string | undefined;
199
199
  customerCaseIds?: string[] | undefined;
200
200
  }[] | undefined;
201
201
  qualificationSignals?: {
202
- title: string;
203
202
  id: string;
203
+ title: string;
204
204
  example?: string | undefined;
205
205
  meaning?: string | undefined;
206
206
  }[] | undefined;
207
207
  competitiveAdvantages?: {
208
- title: string;
209
208
  id: string;
209
+ title: string;
210
210
  description?: string | undefined;
211
211
  }[] | undefined;
212
212
  competitors?: {
213
- title: string;
214
213
  id: string;
214
+ title: string;
215
215
  description?: string | undefined;
216
216
  }[] | undefined;
217
217
  objections?: {
@@ -227,8 +227,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
227
227
  }[] | undefined;
228
228
  }, {
229
229
  painPoints?: {
230
- title: string;
231
230
  id: string;
231
+ title: string;
232
232
  description?: string | undefined;
233
233
  customerCaseIds?: string[] | undefined;
234
234
  useCaseIds?: string[] | undefined;
@@ -236,8 +236,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
236
236
  allowedVocabulary?: string[] | undefined;
237
237
  prohibitedVocabulary?: string[] | undefined;
238
238
  legalConstraints?: {
239
- title: string;
240
239
  id: string;
240
+ title: string;
241
241
  description?: string | undefined;
242
242
  }[] | undefined;
243
243
  customerCaseIds?: string[] | undefined;
@@ -253,30 +253,30 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
253
253
  } | undefined;
254
254
  marketMetrics?: {
255
255
  value: string;
256
- id: string;
257
256
  label: string;
257
+ id: string;
258
258
  explanation?: string | undefined;
259
259
  }[] | undefined;
260
260
  useCases?: {
261
- title: string;
262
261
  id: string;
262
+ title: string;
263
263
  description?: string | undefined;
264
264
  customerCaseIds?: string[] | undefined;
265
265
  }[] | undefined;
266
266
  qualificationSignals?: {
267
- title: string;
268
267
  id: string;
268
+ title: string;
269
269
  example?: string | undefined;
270
270
  meaning?: string | undefined;
271
271
  }[] | undefined;
272
272
  competitiveAdvantages?: {
273
- title: string;
274
273
  id: string;
274
+ title: string;
275
275
  description?: string | undefined;
276
276
  }[] | undefined;
277
277
  competitors?: {
278
- title: string;
279
278
  id: string;
279
+ title: string;
280
280
  description?: string | undefined;
281
281
  }[] | undefined;
282
282
  objections?: {
@@ -292,8 +292,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
292
292
  }[] | undefined;
293
293
  }>, {
294
294
  painPoints?: {
295
- title: string;
296
295
  id: string;
296
+ title: string;
297
297
  description?: string | undefined;
298
298
  customerCaseIds?: string[] | undefined;
299
299
  useCaseIds?: string[] | undefined;
@@ -301,8 +301,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
301
301
  allowedVocabulary?: string[] | undefined;
302
302
  prohibitedVocabulary?: string[] | undefined;
303
303
  legalConstraints?: {
304
- title: string;
305
304
  id: string;
305
+ title: string;
306
306
  description?: string | undefined;
307
307
  }[] | undefined;
308
308
  customerCaseIds?: string[] | undefined;
@@ -318,30 +318,30 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
318
318
  } | undefined;
319
319
  marketMetrics?: {
320
320
  value: string;
321
- id: string;
322
321
  label: string;
322
+ id: string;
323
323
  explanation?: string | undefined;
324
324
  }[] | undefined;
325
325
  useCases?: {
326
- title: string;
327
326
  id: string;
327
+ title: string;
328
328
  description?: string | undefined;
329
329
  customerCaseIds?: string[] | undefined;
330
330
  }[] | undefined;
331
331
  qualificationSignals?: {
332
- title: string;
333
332
  id: string;
333
+ title: string;
334
334
  example?: string | undefined;
335
335
  meaning?: string | undefined;
336
336
  }[] | undefined;
337
337
  competitiveAdvantages?: {
338
- title: string;
339
338
  id: string;
339
+ title: string;
340
340
  description?: string | undefined;
341
341
  }[] | undefined;
342
342
  competitors?: {
343
- title: string;
344
343
  id: string;
344
+ title: string;
345
345
  description?: string | undefined;
346
346
  }[] | undefined;
347
347
  objections?: {
@@ -357,8 +357,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
357
357
  }[] | undefined;
358
358
  }, {
359
359
  painPoints?: {
360
- title: string;
361
360
  id: string;
361
+ title: string;
362
362
  description?: string | undefined;
363
363
  customerCaseIds?: string[] | undefined;
364
364
  useCaseIds?: string[] | undefined;
@@ -366,8 +366,8 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
366
366
  allowedVocabulary?: string[] | undefined;
367
367
  prohibitedVocabulary?: string[] | undefined;
368
368
  legalConstraints?: {
369
- title: string;
370
369
  id: string;
370
+ title: string;
371
371
  description?: string | undefined;
372
372
  }[] | undefined;
373
373
  customerCaseIds?: string[] | undefined;
@@ -383,30 +383,30 @@ export declare const verticalContextContentSchema: z.ZodEffects<z.ZodObject<{
383
383
  } | undefined;
384
384
  marketMetrics?: {
385
385
  value: string;
386
- id: string;
387
386
  label: string;
387
+ id: string;
388
388
  explanation?: string | undefined;
389
389
  }[] | undefined;
390
390
  useCases?: {
391
- title: string;
392
391
  id: string;
392
+ title: string;
393
393
  description?: string | undefined;
394
394
  customerCaseIds?: string[] | undefined;
395
395
  }[] | undefined;
396
396
  qualificationSignals?: {
397
- title: string;
398
397
  id: string;
398
+ title: string;
399
399
  example?: string | undefined;
400
400
  meaning?: string | undefined;
401
401
  }[] | undefined;
402
402
  competitiveAdvantages?: {
403
- title: string;
404
403
  id: string;
404
+ title: string;
405
405
  description?: string | undefined;
406
406
  }[] | undefined;
407
407
  competitors?: {
408
- title: string;
409
408
  id: string;
409
+ title: string;
410
410
  description?: string | undefined;
411
411
  }[] | undefined;
412
412
  objections?: {
@@ -429,12 +429,12 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
429
429
  title: z.ZodString;
430
430
  description: z.ZodOptional<z.ZodString>;
431
431
  }, "strict", z.ZodTypeAny, {
432
- title: string;
433
432
  id: string;
433
+ title: string;
434
434
  description?: string | undefined;
435
435
  }, {
436
- title: string;
437
436
  id: string;
437
+ title: string;
438
438
  description?: string | undefined;
439
439
  }>, "many">>;
440
440
  activationConditions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -442,12 +442,12 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
442
442
  title: z.ZodString;
443
443
  description: z.ZodOptional<z.ZodString>;
444
444
  }, "strict", z.ZodTypeAny, {
445
- title: string;
446
445
  id: string;
446
+ title: string;
447
447
  description?: string | undefined;
448
448
  }, {
449
- title: string;
450
449
  id: string;
450
+ title: string;
451
451
  description?: string | undefined;
452
452
  }>, "many">>;
453
453
  claims: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -470,13 +470,13 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
470
470
  details: z.ZodOptional<z.ZodString>;
471
471
  }, "strict", z.ZodTypeAny, {
472
472
  value: string;
473
- id: string;
474
473
  label: string;
474
+ id: string;
475
475
  details?: string | undefined;
476
476
  }, {
477
477
  value: string;
478
- id: string;
479
478
  label: string;
479
+ id: string;
480
480
  details?: string | undefined;
481
481
  }>, "many">>;
482
482
  customerCases: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -506,25 +506,25 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
506
506
  title: z.ZodString;
507
507
  description: z.ZodOptional<z.ZodString>;
508
508
  }, "strict", z.ZodTypeAny, {
509
- title: string;
510
509
  id: string;
510
+ title: string;
511
511
  description?: string | undefined;
512
512
  }, {
513
- title: string;
514
513
  id: string;
514
+ title: string;
515
515
  description?: string | undefined;
516
516
  }>, "many">>;
517
517
  }, "strict", z.ZodTypeAny, {
518
- description?: string | undefined;
519
518
  promise?: string | undefined;
519
+ description?: string | undefined;
520
520
  capabilities?: {
521
- title: string;
522
521
  id: string;
522
+ title: string;
523
523
  description?: string | undefined;
524
524
  }[] | undefined;
525
525
  activationConditions?: {
526
- title: string;
527
526
  id: string;
527
+ title: string;
528
528
  description?: string | undefined;
529
529
  }[] | undefined;
530
530
  claims?: {
@@ -534,8 +534,8 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
534
534
  }[] | undefined;
535
535
  demonstratedResults?: {
536
536
  value: string;
537
- id: string;
538
537
  label: string;
538
+ id: string;
539
539
  details?: string | undefined;
540
540
  }[] | undefined;
541
541
  customerCases?: {
@@ -547,21 +547,21 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
547
547
  testimonial?: string | undefined;
548
548
  }[] | undefined;
549
549
  constraints?: {
550
- title: string;
551
550
  id: string;
551
+ title: string;
552
552
  description?: string | undefined;
553
553
  }[] | undefined;
554
554
  }, {
555
- description?: string | undefined;
556
555
  promise?: string | undefined;
556
+ description?: string | undefined;
557
557
  capabilities?: {
558
- title: string;
559
558
  id: string;
559
+ title: string;
560
560
  description?: string | undefined;
561
561
  }[] | undefined;
562
562
  activationConditions?: {
563
- title: string;
564
563
  id: string;
564
+ title: string;
565
565
  description?: string | undefined;
566
566
  }[] | undefined;
567
567
  claims?: {
@@ -571,8 +571,8 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
571
571
  }[] | undefined;
572
572
  demonstratedResults?: {
573
573
  value: string;
574
- id: string;
575
574
  label: string;
575
+ id: string;
576
576
  details?: string | undefined;
577
577
  }[] | undefined;
578
578
  customerCases?: {
@@ -584,21 +584,21 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
584
584
  testimonial?: string | undefined;
585
585
  }[] | undefined;
586
586
  constraints?: {
587
- title: string;
588
587
  id: string;
588
+ title: string;
589
589
  description?: string | undefined;
590
590
  }[] | undefined;
591
591
  }>, {
592
- description?: string | undefined;
593
592
  promise?: string | undefined;
593
+ description?: string | undefined;
594
594
  capabilities?: {
595
- title: string;
596
595
  id: string;
596
+ title: string;
597
597
  description?: string | undefined;
598
598
  }[] | undefined;
599
599
  activationConditions?: {
600
- title: string;
601
600
  id: string;
601
+ title: string;
602
602
  description?: string | undefined;
603
603
  }[] | undefined;
604
604
  claims?: {
@@ -608,8 +608,8 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
608
608
  }[] | undefined;
609
609
  demonstratedResults?: {
610
610
  value: string;
611
- id: string;
612
611
  label: string;
612
+ id: string;
613
613
  details?: string | undefined;
614
614
  }[] | undefined;
615
615
  customerCases?: {
@@ -621,21 +621,21 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
621
621
  testimonial?: string | undefined;
622
622
  }[] | undefined;
623
623
  constraints?: {
624
- title: string;
625
624
  id: string;
625
+ title: string;
626
626
  description?: string | undefined;
627
627
  }[] | undefined;
628
628
  }, {
629
- description?: string | undefined;
630
629
  promise?: string | undefined;
630
+ description?: string | undefined;
631
631
  capabilities?: {
632
- title: string;
633
632
  id: string;
633
+ title: string;
634
634
  description?: string | undefined;
635
635
  }[] | undefined;
636
636
  activationConditions?: {
637
- title: string;
638
637
  id: string;
638
+ title: string;
639
639
  description?: string | undefined;
640
640
  }[] | undefined;
641
641
  claims?: {
@@ -645,8 +645,8 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
645
645
  }[] | undefined;
646
646
  demonstratedResults?: {
647
647
  value: string;
648
- id: string;
649
648
  label: string;
649
+ id: string;
650
650
  details?: string | undefined;
651
651
  }[] | undefined;
652
652
  customerCases?: {
@@ -658,8 +658,8 @@ export declare const offerContextContentSchema: z.ZodEffects<z.ZodObject<{
658
658
  testimonial?: string | undefined;
659
659
  }[] | undefined;
660
660
  constraints?: {
661
- title: string;
662
661
  id: string;
662
+ title: string;
663
663
  description?: string | undefined;
664
664
  }[] | undefined;
665
665
  }>;