@elevasis/sdk 1.25.0 → 1.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +87 -120
- package/dist/index.d.ts +220 -50
- package/dist/index.js +4 -435
- package/dist/node/index.d.ts +46 -38
- package/dist/test-utils/index.d.ts +154 -40
- package/dist/test-utils/index.js +27 -355
- package/dist/types/worker/adapters/clickup.d.ts +22 -0
- package/dist/types/worker/adapters/index.d.ts +1 -0
- package/dist/worker/index.js +32 -354
- package/package.json +2 -2
- package/reference/_navigation.md +11 -1
- package/reference/_reference-manifest.json +70 -0
- package/reference/claude-config/rules/organization-model.md +12 -1
- package/reference/claude-config/rules/organization-os.md +12 -1
- package/reference/claude-config/skills/om/SKILL.md +13 -5
- package/reference/claude-config/skills/om/operations/codify-level-a.md +109 -100
- package/reference/claude-config/skills/om/operations/customers.md +10 -6
- package/reference/claude-config/skills/om/operations/features.md +7 -3
- package/reference/claude-config/skills/om/operations/goals.md +10 -6
- package/reference/claude-config/skills/om/operations/identity.md +8 -5
- package/reference/claude-config/skills/om/operations/labels.md +17 -1
- package/reference/claude-config/skills/om/operations/offerings.md +11 -7
- package/reference/claude-config/skills/om/operations/roles.md +11 -7
- package/reference/claude-config/skills/om/operations/techStack.md +10 -2
- package/reference/claude-config/skills/setup/SKILL.md +2 -2
- package/reference/claude-config/sync-notes/2026-05-20-om-define-helpers.md +32 -0
- package/reference/claude-config/sync-notes/2026-05-22-access-model-and-right-panel.md +43 -0
- package/reference/claude-config/sync-notes/2026-05-22-lead-gen-tenant-config.md +40 -0
- package/reference/claude-config/sync-notes/2026-05-22-org-model-multi-file-split.md +61 -0
- package/reference/claude-config/sync-notes/2026-05-23-branding-names-to-identity.md +49 -0
- package/reference/claude-config/sync-notes/2026-05-23-om-deployment-drift-detection.md +42 -0
- package/reference/cli-management.mdx +541 -0
- package/reference/cli.mdx +4 -532
- package/reference/concepts.mdx +134 -146
- package/reference/deployment/api.mdx +296 -297
- package/reference/deployment/command-center.mdx +208 -209
- package/reference/deployment/index.mdx +194 -195
- package/reference/deployment/provided-features.mdx +110 -107
- package/reference/deployment/ui-execution.mdx +249 -250
- package/reference/examples/organization-model.ts +14 -4
- package/reference/framework/index.mdx +111 -195
- package/reference/framework/resource-documentation.mdx +90 -0
- package/reference/framework/tutorial-system.mdx +135 -135
- package/reference/getting-started.mdx +141 -142
- package/reference/index.mdx +95 -106
- package/reference/packages/ui/src/auth/README.md +6 -6
- package/reference/platform-tools/adapters-integration.mdx +300 -301
- package/reference/platform-tools/adapters-platform.mdx +552 -553
- package/reference/platform-tools/index.mdx +216 -217
- package/reference/platform-tools/type-safety.mdx +82 -82
- package/reference/resources/index.mdx +348 -349
- package/reference/resources/patterns.mdx +446 -449
- package/reference/resources/types.mdx +115 -116
- package/reference/roadmap.mdx +164 -165
- package/reference/rules/organization-model.md +14 -0
- package/reference/runtime.mdx +172 -173
- package/reference/scaffold/operations/propagation-pipeline.md +1 -1
- package/reference/scaffold/recipes/extend-lead-gen.md +130 -77
- package/reference/scaffold/reference/contracts.md +376 -446
- package/reference/scaffold/reference/glossary.md +8 -6
- package/reference/scaffold/ui/feature-flags-and-gating.md +59 -46
- package/reference/scaffold/ui/feature-shell.mdx +11 -11
- package/reference/scaffold/ui/recipes.md +24 -24
- package/reference/troubleshooting.mdx +222 -223
package/dist/index.js
CHANGED
|
@@ -506,107 +506,6 @@ var EntitySchema = z.object({
|
|
|
506
506
|
z.record(z.string(), EntitySchema).refine((record) => Object.entries(record).every(([key, entry]) => entry.id === key), {
|
|
507
507
|
message: "Each entity entry id must match its map key"
|
|
508
508
|
}).default({});
|
|
509
|
-
var ENTITY_ENTRY_INPUTS = [
|
|
510
|
-
{
|
|
511
|
-
id: "crm.deal",
|
|
512
|
-
order: 10,
|
|
513
|
-
label: "Deal",
|
|
514
|
-
description: "A CRM opportunity or sales pipeline record.",
|
|
515
|
-
ownedBySystemId: "sales.crm",
|
|
516
|
-
table: "crm_deals",
|
|
517
|
-
stateCatalogId: "crm.pipeline",
|
|
518
|
-
links: [{ toEntity: "crm.contact", kind: "has-many", via: "deal_contacts", label: "contacts" }]
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
id: "crm.contact",
|
|
522
|
-
order: 20,
|
|
523
|
-
label: "CRM Contact",
|
|
524
|
-
description: "A person associated with a CRM relationship or deal.",
|
|
525
|
-
ownedBySystemId: "sales.crm",
|
|
526
|
-
table: "crm_contacts"
|
|
527
|
-
},
|
|
528
|
-
{
|
|
529
|
-
id: "leadgen.list",
|
|
530
|
-
order: 30,
|
|
531
|
-
label: "Lead List",
|
|
532
|
-
description: "A prospecting list that groups companies and contacts for acquisition workflows.",
|
|
533
|
-
ownedBySystemId: "sales.lead-gen",
|
|
534
|
-
table: "acq_lists",
|
|
535
|
-
links: [
|
|
536
|
-
{ toEntity: "leadgen.company", kind: "has-many", via: "acq_list_companies", label: "companies" },
|
|
537
|
-
{ toEntity: "leadgen.contact", kind: "has-many", via: "acq_list_members", label: "contacts" }
|
|
538
|
-
]
|
|
539
|
-
},
|
|
540
|
-
{
|
|
541
|
-
id: "leadgen.company",
|
|
542
|
-
order: 40,
|
|
543
|
-
label: "Lead Company",
|
|
544
|
-
description: "A company record sourced, enriched, and qualified during prospecting.",
|
|
545
|
-
ownedBySystemId: "sales.lead-gen",
|
|
546
|
-
table: "acq_list_companies",
|
|
547
|
-
stateCatalogId: "lead-gen.company",
|
|
548
|
-
links: [
|
|
549
|
-
{ toEntity: "leadgen.list", kind: "belongs-to", via: "list_id", label: "list" },
|
|
550
|
-
{ toEntity: "leadgen.contact", kind: "has-many", via: "company_id", label: "contacts" }
|
|
551
|
-
]
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
id: "leadgen.contact",
|
|
555
|
-
order: 50,
|
|
556
|
-
label: "Lead Contact",
|
|
557
|
-
description: "A prospect contact discovered or enriched during lead generation.",
|
|
558
|
-
ownedBySystemId: "sales.lead-gen",
|
|
559
|
-
table: "acq_list_members",
|
|
560
|
-
stateCatalogId: "lead-gen.contact",
|
|
561
|
-
links: [
|
|
562
|
-
{ toEntity: "leadgen.list", kind: "belongs-to", via: "list_id", label: "list" },
|
|
563
|
-
{ toEntity: "leadgen.company", kind: "belongs-to", via: "company_id", label: "company" }
|
|
564
|
-
]
|
|
565
|
-
},
|
|
566
|
-
{
|
|
567
|
-
id: "delivery.project",
|
|
568
|
-
order: 60,
|
|
569
|
-
label: "Project",
|
|
570
|
-
description: "A client delivery project.",
|
|
571
|
-
ownedBySystemId: "projects",
|
|
572
|
-
table: "projects",
|
|
573
|
-
links: [
|
|
574
|
-
{ toEntity: "delivery.milestone", kind: "has-many", via: "project_id", label: "milestones" },
|
|
575
|
-
{ toEntity: "delivery.task", kind: "has-many", via: "project_id", label: "tasks" }
|
|
576
|
-
]
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
id: "delivery.milestone",
|
|
580
|
-
order: 70,
|
|
581
|
-
label: "Milestone",
|
|
582
|
-
description: "A delivery checkpoint within a project.",
|
|
583
|
-
ownedBySystemId: "projects",
|
|
584
|
-
table: "project_milestones",
|
|
585
|
-
links: [
|
|
586
|
-
{ toEntity: "delivery.project", kind: "belongs-to", via: "project_id", label: "project" },
|
|
587
|
-
{ toEntity: "delivery.task", kind: "has-many", via: "milestone_id", label: "tasks" }
|
|
588
|
-
]
|
|
589
|
-
},
|
|
590
|
-
{
|
|
591
|
-
id: "delivery.task",
|
|
592
|
-
order: 80,
|
|
593
|
-
label: "Task",
|
|
594
|
-
description: "A delivery task that can move through the task status catalog.",
|
|
595
|
-
ownedBySystemId: "projects",
|
|
596
|
-
table: "project_tasks",
|
|
597
|
-
stateCatalogId: "delivery.task",
|
|
598
|
-
links: [
|
|
599
|
-
{ toEntity: "delivery.project", kind: "belongs-to", via: "project_id", label: "project" },
|
|
600
|
-
{ toEntity: "delivery.milestone", kind: "belongs-to", via: "milestone_id", label: "milestone" }
|
|
601
|
-
]
|
|
602
|
-
}
|
|
603
|
-
];
|
|
604
|
-
Object.fromEntries(
|
|
605
|
-
ENTITY_ENTRY_INPUTS.map((entity) => {
|
|
606
|
-
const parsed = EntitySchema.parse(entity);
|
|
607
|
-
return [parsed.id, parsed];
|
|
608
|
-
})
|
|
609
|
-
);
|
|
610
509
|
|
|
611
510
|
// ../core/src/organization-model/domains/actions.ts
|
|
612
511
|
var ActionResourceIdSchema = z.string().trim().min(1).max(255).regex(/^[A-Za-z0-9]+(?:[-._][A-Za-z0-9]+)*$/, "Resource IDs must use letters, numbers, -, _, or . separators");
|
|
@@ -1214,312 +1113,6 @@ var ProspectingBuildTemplateSchema = DisplayMetadataSchema.extend({
|
|
|
1214
1113
|
id: ModelIdSchema,
|
|
1215
1114
|
steps: z.array(ProspectingBuildTemplateStepSchema).min(1)
|
|
1216
1115
|
});
|
|
1217
|
-
var DTC_RECORD_COLUMNS = {
|
|
1218
|
-
populated: {
|
|
1219
|
-
company: [
|
|
1220
|
-
{ key: "name", label: "Company", path: "company.name" },
|
|
1221
|
-
{ key: "domain", label: "Domain", path: "company.domain" },
|
|
1222
|
-
{ key: "employee-count", label: "Employees", path: "company.numEmployees", renderType: "count" },
|
|
1223
|
-
{ key: "apollo-industry", label: "Apollo industry", path: "company.category" },
|
|
1224
|
-
{ key: "location", label: "Location", path: "company.locationState" }
|
|
1225
|
-
]
|
|
1226
|
-
},
|
|
1227
|
-
crawled: {
|
|
1228
|
-
company: [
|
|
1229
|
-
{ key: "name", label: "Company", path: "company.name" },
|
|
1230
|
-
{ key: "domain", label: "Domain", path: "company.domain" },
|
|
1231
|
-
{ key: "page-count", label: "Pages", path: "company.enrichmentData.websiteCrawl.pageCount", renderType: "count" },
|
|
1232
|
-
{ key: "crawl-status", label: "Crawl status", path: "processingState.crawled.status", renderType: "badge" }
|
|
1233
|
-
]
|
|
1234
|
-
},
|
|
1235
|
-
extracted: {
|
|
1236
|
-
company: [
|
|
1237
|
-
{ key: "name", label: "Company", path: "company.name" },
|
|
1238
|
-
{ key: "domain", label: "Domain", path: "company.domain" },
|
|
1239
|
-
{ key: "description", label: "Description", path: "company.enrichmentData.websiteCrawl.companyDescription" },
|
|
1240
|
-
{ key: "services", label: "Services", path: "company.enrichmentData.websiteCrawl.services", renderType: "json" },
|
|
1241
|
-
{
|
|
1242
|
-
key: "automation-gaps",
|
|
1243
|
-
label: "Automation gaps",
|
|
1244
|
-
path: "company.enrichmentData.websiteCrawl.automationGaps",
|
|
1245
|
-
renderType: "json"
|
|
1246
|
-
},
|
|
1247
|
-
{
|
|
1248
|
-
key: "contact-count",
|
|
1249
|
-
label: "Contacts",
|
|
1250
|
-
path: "company.enrichmentData.websiteCrawl.emailCount",
|
|
1251
|
-
renderType: "count"
|
|
1252
|
-
}
|
|
1253
|
-
]
|
|
1254
|
-
},
|
|
1255
|
-
qualified: {
|
|
1256
|
-
company: [
|
|
1257
|
-
{ key: "name", label: "Company", path: "company.name" },
|
|
1258
|
-
{ key: "domain", label: "Domain", path: "company.domain" },
|
|
1259
|
-
{ key: "score", label: "Score", path: "company.qualificationScore", renderType: "badge", badgeColor: "green" },
|
|
1260
|
-
{ key: "signals", label: "Signals", path: "company.qualificationSignals", renderType: "json" },
|
|
1261
|
-
{
|
|
1262
|
-
key: "disqualified-reason",
|
|
1263
|
-
label: "Disqualified reason",
|
|
1264
|
-
path: "processingState.qualified.data.disqualifiedReason"
|
|
1265
|
-
}
|
|
1266
|
-
]
|
|
1267
|
-
},
|
|
1268
|
-
decisionMakers: {
|
|
1269
|
-
contact: [
|
|
1270
|
-
{ key: "name", label: "Name", path: "contact.name" },
|
|
1271
|
-
{ key: "title", label: "Title", path: "contact.title" },
|
|
1272
|
-
{ key: "email", label: "Email", path: "contact.email" },
|
|
1273
|
-
{ key: "linkedin", label: "LinkedIn", path: "contact.linkedinUrl" },
|
|
1274
|
-
{
|
|
1275
|
-
key: "priority-score",
|
|
1276
|
-
label: "Priority",
|
|
1277
|
-
path: "contact.enrichmentData.apollo.priorityScore",
|
|
1278
|
-
renderType: "badge"
|
|
1279
|
-
}
|
|
1280
|
-
]
|
|
1281
|
-
},
|
|
1282
|
-
uploaded: {
|
|
1283
|
-
company: [
|
|
1284
|
-
{ key: "name", label: "Company", path: "company.name" },
|
|
1285
|
-
{ key: "domain", label: "Domain", path: "company.domain" },
|
|
1286
|
-
{
|
|
1287
|
-
key: "contacts",
|
|
1288
|
-
label: "Contacts",
|
|
1289
|
-
path: "company.enrichmentData.approvedLeadListExport.contacts",
|
|
1290
|
-
renderType: "json"
|
|
1291
|
-
},
|
|
1292
|
-
{ key: "score", label: "Score", path: "company.qualificationScore", renderType: "badge", badgeColor: "green" },
|
|
1293
|
-
{
|
|
1294
|
-
key: "approval",
|
|
1295
|
-
label: "Approval",
|
|
1296
|
-
path: "company.enrichmentData.approvedLeadListExport.approvalStatus",
|
|
1297
|
-
renderType: "badge"
|
|
1298
|
-
}
|
|
1299
|
-
]
|
|
1300
|
-
}
|
|
1301
|
-
};
|
|
1302
|
-
var PROSPECTING_STEPS = {
|
|
1303
|
-
localServices: {
|
|
1304
|
-
sourceCompanies: {
|
|
1305
|
-
id: "source-companies",
|
|
1306
|
-
label: "Companies found",
|
|
1307
|
-
primaryEntity: "company",
|
|
1308
|
-
outputs: ["company"],
|
|
1309
|
-
stageKey: "populated",
|
|
1310
|
-
dependencyMode: "per-record-eligibility",
|
|
1311
|
-
actionKey: "lead-gen.company.source",
|
|
1312
|
-
defaultBatchSize: 100,
|
|
1313
|
-
maxBatchSize: 250
|
|
1314
|
-
},
|
|
1315
|
-
analyzeWebsites: {
|
|
1316
|
-
id: "analyze-websites",
|
|
1317
|
-
label: "Websites analyzed",
|
|
1318
|
-
primaryEntity: "company",
|
|
1319
|
-
outputs: ["company"],
|
|
1320
|
-
stageKey: "extracted",
|
|
1321
|
-
dependsOn: ["source-companies"],
|
|
1322
|
-
dependencyMode: "per-record-eligibility",
|
|
1323
|
-
actionKey: "lead-gen.company.website-extract",
|
|
1324
|
-
defaultBatchSize: 50,
|
|
1325
|
-
maxBatchSize: 100
|
|
1326
|
-
},
|
|
1327
|
-
qualifyCompanies: {
|
|
1328
|
-
id: "qualify-companies",
|
|
1329
|
-
label: "Companies qualified",
|
|
1330
|
-
primaryEntity: "company",
|
|
1331
|
-
outputs: ["company"],
|
|
1332
|
-
stageKey: "qualified",
|
|
1333
|
-
dependsOn: ["analyze-websites"],
|
|
1334
|
-
dependencyMode: "per-record-eligibility",
|
|
1335
|
-
actionKey: "lead-gen.company.qualify",
|
|
1336
|
-
defaultBatchSize: 100,
|
|
1337
|
-
maxBatchSize: 250
|
|
1338
|
-
},
|
|
1339
|
-
findContacts: {
|
|
1340
|
-
id: "find-contacts",
|
|
1341
|
-
label: "Decision-makers found",
|
|
1342
|
-
primaryEntity: "contact",
|
|
1343
|
-
outputs: ["contact"],
|
|
1344
|
-
stageKey: "discovered",
|
|
1345
|
-
dependsOn: ["qualify-companies"],
|
|
1346
|
-
dependencyMode: "per-record-eligibility",
|
|
1347
|
-
actionKey: "lead-gen.contact.discover",
|
|
1348
|
-
defaultBatchSize: 50,
|
|
1349
|
-
maxBatchSize: 100
|
|
1350
|
-
},
|
|
1351
|
-
verifyEmails: {
|
|
1352
|
-
id: "verify-emails",
|
|
1353
|
-
label: "Emails verified",
|
|
1354
|
-
primaryEntity: "contact",
|
|
1355
|
-
outputs: ["contact"],
|
|
1356
|
-
stageKey: "verified",
|
|
1357
|
-
dependsOn: ["find-contacts"],
|
|
1358
|
-
dependencyMode: "per-record-eligibility",
|
|
1359
|
-
actionKey: "lead-gen.contact.verify-email",
|
|
1360
|
-
defaultBatchSize: 100,
|
|
1361
|
-
maxBatchSize: 500
|
|
1362
|
-
},
|
|
1363
|
-
personalize: {
|
|
1364
|
-
id: "personalize",
|
|
1365
|
-
label: "Personalize",
|
|
1366
|
-
primaryEntity: "contact",
|
|
1367
|
-
outputs: ["contact"],
|
|
1368
|
-
stageKey: "personalized",
|
|
1369
|
-
dependsOn: ["verify-emails"],
|
|
1370
|
-
dependencyMode: "per-record-eligibility",
|
|
1371
|
-
actionKey: "lead-gen.contact.personalize",
|
|
1372
|
-
defaultBatchSize: 25,
|
|
1373
|
-
maxBatchSize: 100
|
|
1374
|
-
},
|
|
1375
|
-
review: {
|
|
1376
|
-
id: "review",
|
|
1377
|
-
label: "Reviewed and exported",
|
|
1378
|
-
primaryEntity: "contact",
|
|
1379
|
-
outputs: ["export"],
|
|
1380
|
-
stageKey: "uploaded",
|
|
1381
|
-
dependsOn: ["personalize"],
|
|
1382
|
-
dependencyMode: "per-record-eligibility",
|
|
1383
|
-
actionKey: "lead-gen.review.outreach-ready",
|
|
1384
|
-
defaultBatchSize: 25,
|
|
1385
|
-
maxBatchSize: 100
|
|
1386
|
-
}
|
|
1387
|
-
},
|
|
1388
|
-
dtcApolloClickup: {
|
|
1389
|
-
importApolloSearch: {
|
|
1390
|
-
id: "import-apollo-search",
|
|
1391
|
-
label: "Companies found",
|
|
1392
|
-
description: "Pull companies and seed contact data from a predefined Apollo search or list.",
|
|
1393
|
-
primaryEntity: "company",
|
|
1394
|
-
outputs: ["company", "contact"],
|
|
1395
|
-
stageKey: "populated",
|
|
1396
|
-
dependencyMode: "per-record-eligibility",
|
|
1397
|
-
actionKey: "lead-gen.company.apollo-import",
|
|
1398
|
-
defaultBatchSize: 250,
|
|
1399
|
-
maxBatchSize: 1e3,
|
|
1400
|
-
recordColumns: DTC_RECORD_COLUMNS.populated,
|
|
1401
|
-
credentialRequirements: [
|
|
1402
|
-
{
|
|
1403
|
-
key: "apollo",
|
|
1404
|
-
provider: "apollo",
|
|
1405
|
-
credentialType: "api-key-secret",
|
|
1406
|
-
label: "Apollo API key",
|
|
1407
|
-
required: true,
|
|
1408
|
-
selectionMode: "single",
|
|
1409
|
-
inputPath: "credential"
|
|
1410
|
-
}
|
|
1411
|
-
]
|
|
1412
|
-
},
|
|
1413
|
-
apifyCrawl: {
|
|
1414
|
-
id: "apify-crawl",
|
|
1415
|
-
label: "Websites crawled",
|
|
1416
|
-
description: "Crawl company websites via Apify and store raw page markdown in enrichmentData.websiteCrawl.pages for downstream LLM analysis. Overwrites the synthetic seed Apollo Import wrote with real page content.",
|
|
1417
|
-
primaryEntity: "company",
|
|
1418
|
-
outputs: ["company"],
|
|
1419
|
-
stageKey: "crawled",
|
|
1420
|
-
dependsOn: ["import-apollo-search"],
|
|
1421
|
-
dependencyMode: "per-record-eligibility",
|
|
1422
|
-
actionKey: "lead-gen.company.apify-crawl",
|
|
1423
|
-
defaultBatchSize: 50,
|
|
1424
|
-
maxBatchSize: 100,
|
|
1425
|
-
recordColumns: DTC_RECORD_COLUMNS.crawled,
|
|
1426
|
-
credentialRequirements: [
|
|
1427
|
-
{
|
|
1428
|
-
key: "apify",
|
|
1429
|
-
provider: "apify",
|
|
1430
|
-
credentialType: "api-key-secret",
|
|
1431
|
-
label: "Apify API token",
|
|
1432
|
-
required: true,
|
|
1433
|
-
selectionMode: "single",
|
|
1434
|
-
inputPath: "credential",
|
|
1435
|
-
verifyOnRun: true
|
|
1436
|
-
}
|
|
1437
|
-
]
|
|
1438
|
-
},
|
|
1439
|
-
analyzeWebsites: {
|
|
1440
|
-
id: "analyze-websites",
|
|
1441
|
-
label: "Websites analyzed",
|
|
1442
|
-
description: "Extract subscription, product, retention, and tech-stack signals from each brand website.",
|
|
1443
|
-
primaryEntity: "company",
|
|
1444
|
-
outputs: ["company"],
|
|
1445
|
-
stageKey: "extracted",
|
|
1446
|
-
dependsOn: ["apify-crawl"],
|
|
1447
|
-
dependencyMode: "per-record-eligibility",
|
|
1448
|
-
actionKey: "lead-gen.company.website-extract",
|
|
1449
|
-
defaultBatchSize: 50,
|
|
1450
|
-
maxBatchSize: 100,
|
|
1451
|
-
recordColumns: DTC_RECORD_COLUMNS.extracted
|
|
1452
|
-
},
|
|
1453
|
-
scoreDtcFit: {
|
|
1454
|
-
id: "score-dtc-fit",
|
|
1455
|
-
label: "Companies qualified",
|
|
1456
|
-
description: "Classify subscription potential, consumable-product fit, retention maturity, and disqualifiers.",
|
|
1457
|
-
primaryEntity: "company",
|
|
1458
|
-
outputs: ["company"],
|
|
1459
|
-
stageKey: "qualified",
|
|
1460
|
-
dependsOn: ["analyze-websites"],
|
|
1461
|
-
dependencyMode: "per-record-eligibility",
|
|
1462
|
-
actionKey: "lead-gen.company.dtc-subscription-qualify",
|
|
1463
|
-
defaultBatchSize: 100,
|
|
1464
|
-
maxBatchSize: 250,
|
|
1465
|
-
recordColumns: DTC_RECORD_COLUMNS.qualified
|
|
1466
|
-
},
|
|
1467
|
-
enrichDecisionMakers: {
|
|
1468
|
-
id: "enrich-decision-makers",
|
|
1469
|
-
label: "Decision-makers found",
|
|
1470
|
-
description: "Use Apollo to find qualified contacts at qualified companies - founders, retention leads, lifecycle leads, and marketing owners.",
|
|
1471
|
-
primaryEntity: "company",
|
|
1472
|
-
outputs: ["contact"],
|
|
1473
|
-
stageKey: "decision-makers-enriched",
|
|
1474
|
-
recordEntity: "contact",
|
|
1475
|
-
dependsOn: ["score-dtc-fit"],
|
|
1476
|
-
dependencyMode: "per-record-eligibility",
|
|
1477
|
-
actionKey: "lead-gen.contact.apollo-decision-maker-enrich",
|
|
1478
|
-
defaultBatchSize: 100,
|
|
1479
|
-
maxBatchSize: 250,
|
|
1480
|
-
recordColumns: DTC_RECORD_COLUMNS.decisionMakers,
|
|
1481
|
-
credentialRequirements: [
|
|
1482
|
-
{
|
|
1483
|
-
key: "apollo",
|
|
1484
|
-
provider: "apollo",
|
|
1485
|
-
credentialType: "api-key-secret",
|
|
1486
|
-
label: "Apollo API key",
|
|
1487
|
-
required: true,
|
|
1488
|
-
selectionMode: "single",
|
|
1489
|
-
inputPath: "credential"
|
|
1490
|
-
}
|
|
1491
|
-
]
|
|
1492
|
-
},
|
|
1493
|
-
reviewAndExport: {
|
|
1494
|
-
id: "review-and-export",
|
|
1495
|
-
label: "Reviewed and exported",
|
|
1496
|
-
description: "Operator QC approves or rejects qualified companies, then approved records are exported as a lead list with unverified emails.",
|
|
1497
|
-
primaryEntity: "company",
|
|
1498
|
-
outputs: ["export"],
|
|
1499
|
-
stageKey: "uploaded",
|
|
1500
|
-
recordsStageKey: "uploaded",
|
|
1501
|
-
recordSourceStageKey: "qualified",
|
|
1502
|
-
dependsOn: ["enrich-decision-makers"],
|
|
1503
|
-
dependencyMode: "per-record-eligibility",
|
|
1504
|
-
actionKey: "lead-gen.export.list",
|
|
1505
|
-
defaultBatchSize: 100,
|
|
1506
|
-
maxBatchSize: 250,
|
|
1507
|
-
recordColumns: DTC_RECORD_COLUMNS.uploaded,
|
|
1508
|
-
credentialRequirements: [
|
|
1509
|
-
{
|
|
1510
|
-
key: "clickup",
|
|
1511
|
-
provider: "clickup",
|
|
1512
|
-
credentialType: "api-key-secret",
|
|
1513
|
-
label: "ClickUp API token",
|
|
1514
|
-
required: true,
|
|
1515
|
-
selectionMode: "single",
|
|
1516
|
-
inputPath: "clickupCredential",
|
|
1517
|
-
verifyOnRun: true
|
|
1518
|
-
}
|
|
1519
|
-
]
|
|
1520
|
-
}
|
|
1521
|
-
}
|
|
1522
|
-
};
|
|
1523
1116
|
|
|
1524
1117
|
// src/contract-ref.ts
|
|
1525
1118
|
var ContractRefResolutionError = class extends Error {
|
|
@@ -5612,30 +5205,6 @@ function bindResourceDescriptor(definition) {
|
|
|
5612
5205
|
type: resource.kind
|
|
5613
5206
|
};
|
|
5614
5207
|
}
|
|
5615
|
-
|
|
5616
|
-
// ../core/src/business/acquisition/build-templates.ts
|
|
5617
|
-
var BUILD_TEMPLATE_CATALOG = [
|
|
5618
|
-
{
|
|
5619
|
-
id: "local-services",
|
|
5620
|
-
label: "Local Services",
|
|
5621
|
-
description: "Source, analyze, qualify, and personalize local service businesses for outreach.",
|
|
5622
|
-
steps: Object.values(PROSPECTING_STEPS.localServices)
|
|
5623
|
-
},
|
|
5624
|
-
{
|
|
5625
|
-
id: "dtc-subscription-apollo-clickup",
|
|
5626
|
-
label: "DTC Subscription (Apollo + ClickUp)",
|
|
5627
|
-
description: "Import DTC brand leads from Apollo, crawl their websites, score fit, enrich contacts, and export via ClickUp.",
|
|
5628
|
-
steps: Object.values(PROSPECTING_STEPS.dtcApolloClickup)
|
|
5629
|
-
}
|
|
5630
|
-
];
|
|
5631
|
-
var PROSPECTING_BUILD_TEMPLATE_OPTIONS = BUILD_TEMPLATE_CATALOG.map(({ id, label, description }) => ({
|
|
5632
|
-
id,
|
|
5633
|
-
label,
|
|
5634
|
-
description
|
|
5635
|
-
}));
|
|
5636
|
-
function isProspectingBuildTemplateId(value) {
|
|
5637
|
-
return PROSPECTING_BUILD_TEMPLATE_OPTIONS.some((template) => template.id === value);
|
|
5638
|
-
}
|
|
5639
5208
|
var ProcessingStageStatusSchema = z.enum(["success", "no_result", "skipped", "error"]);
|
|
5640
5209
|
var LeadGenStageKeySchema = z.string().trim().min(1);
|
|
5641
5210
|
var LeadGenActionKeySchema = z.string().trim().min(1);
|
|
@@ -5898,8 +5467,10 @@ var PipelineStageSchema = z.object({
|
|
|
5898
5467
|
enabled: z.boolean().optional(),
|
|
5899
5468
|
order: z.number().int().optional()
|
|
5900
5469
|
});
|
|
5470
|
+
var DataModeSchema = z.enum(["mock", "live"]);
|
|
5901
5471
|
var PipelineConfigSchema = z.object({
|
|
5902
|
-
stages: z.array(PipelineStageSchema).optional()
|
|
5472
|
+
stages: z.array(PipelineStageSchema).optional(),
|
|
5473
|
+
dataMode: DataModeSchema.optional()
|
|
5903
5474
|
});
|
|
5904
5475
|
var BuildPlanSnapshotStepSchema = z.object({
|
|
5905
5476
|
id: z.string().trim().min(1).max(100),
|
|
@@ -5956,9 +5527,7 @@ var BuildPlanSnapshotSchema = z.object({
|
|
|
5956
5527
|
var AcqListMetadataSchema = z.object({
|
|
5957
5528
|
buildPlanSnapshot: BuildPlanSnapshotSchema.optional()
|
|
5958
5529
|
}).catchall(z.unknown());
|
|
5959
|
-
var ProspectingBuildTemplateIdSchema = z.string().trim().min(1).max(100)
|
|
5960
|
-
message: "buildTemplateId must match a known prospecting build template"
|
|
5961
|
-
});
|
|
5530
|
+
var ProspectingBuildTemplateIdSchema = z.string().trim().min(1).max(100);
|
|
5962
5531
|
var ListStageCountsSchema = z.object({
|
|
5963
5532
|
// Attempted counts by canonical lead-gen stage. The detailed status
|
|
5964
5533
|
// distribution lives on ListProgress; telemetry keeps the overview payload small.
|