@elevasis/ui 2.45.1 → 2.45.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.
Files changed (50) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +0 -1
  3. package/dist/app/index.js +3 -3
  4. package/dist/auth/index.d.ts +6 -0
  5. package/dist/auth/index.js +3 -3
  6. package/dist/charts/index.js +3 -3
  7. package/dist/{chunk-UBTSEZJK.js → chunk-FLQKWUSH.js} +1851 -1581
  8. package/dist/{chunk-XDEUR36B.js → chunk-HQPJ6TGV.js} +0 -2
  9. package/dist/{chunk-NVVAQNKE.js → chunk-L4RIHGPO.js} +1 -1
  10. package/dist/{chunk-UECAFQKT.js → chunk-SDUMVYGI.js} +1 -1
  11. package/dist/components/index.d.ts +0 -1
  12. package/dist/components/index.js +3 -3
  13. package/dist/components/navigation/index.js +3 -3
  14. package/dist/features/auth/index.js +4 -4
  15. package/dist/features/clients/index.js +3 -3
  16. package/dist/features/crm/index.js +3 -3
  17. package/dist/features/dashboard/index.d.ts +0 -1
  18. package/dist/features/dashboard/index.js +3 -3
  19. package/dist/features/delivery/index.js +3 -3
  20. package/dist/features/knowledge/index.js +3 -3
  21. package/dist/features/lead-gen/index.d.ts +0 -1
  22. package/dist/features/lead-gen/index.js +3 -3
  23. package/dist/features/monitoring/index.js +3 -3
  24. package/dist/features/monitoring/requests/index.js +4 -4
  25. package/dist/features/operations/index.d.ts +0 -1
  26. package/dist/features/operations/index.js +3 -3
  27. package/dist/features/settings/index.js +3 -3
  28. package/dist/hooks/access/index.d.ts +6 -0
  29. package/dist/hooks/access/index.js +3 -3
  30. package/dist/hooks/delivery/index.js +3 -3
  31. package/dist/hooks/index.d.ts +6 -1
  32. package/dist/hooks/index.js +3 -3
  33. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -1
  34. package/dist/hooks/published.d.ts +6 -1
  35. package/dist/hooks/published.js +3 -3
  36. package/dist/index.d.ts +6 -1
  37. package/dist/index.js +4 -4
  38. package/dist/knowledge/index.d.ts +0 -1
  39. package/dist/knowledge/index.js +8 -12
  40. package/dist/layout/index.js +3 -3
  41. package/dist/organization/index.js +3 -3
  42. package/dist/provider/index.d.ts +0 -1
  43. package/dist/provider/index.js +3 -3
  44. package/dist/provider/published.d.ts +0 -1
  45. package/dist/provider/published.js +3 -3
  46. package/dist/test-utils/index.js +3 -3
  47. package/dist/types/index.d.ts +0 -1
  48. package/dist/utils/index.d.ts +0 -1
  49. package/dist/utils/index.js +1 -1
  50. package/package.json +4 -4
@@ -4,14 +4,14 @@ import { useSupabase } from './chunk-MKH2KOAO.js';
4
4
  import { StyledMarkdown, ChatHeader, ChatSidebar } from './chunk-GUKY77FJ.js';
5
5
  import { CardHeader } from './chunk-S3XR4II4.js';
6
6
  import { useInitialization, InitializationContext, InitializationProvider } from './chunk-6DO4PE3O.js';
7
- import { HTTP_HEADERS, ApiClientProvider, useApiClient } from './chunk-NVVAQNKE.js';
7
+ import { HTTP_HEADERS, ApiClientProvider, useApiClient } from './chunk-L4RIHGPO.js';
8
8
  import { OrganizationContext, useOrganization } from './chunk-DD3CCMCZ.js';
9
9
  import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarItemPadding, sidebarItemHeight, sidebarIconSize, sidebarIconStroke, sidebarIconInnerSize, sidebarBottomSectionHeight, SubshellNavItem, sidebarGroupChevronSize, SubshellSidebarSection } from './chunk-GMXGDO3I.js';
10
10
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
11
11
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger, useGraphHighlighting, calculateGraphHeight, GRAPH_CONSTANTS } from './chunk-HENXLGVD.js';
12
12
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent, getResourceStatusColor, useMergedExecution, useTimelineData, useAgentIterationData } from './chunk-7FPLLSHN.js';
13
13
  import { useProfile, useUserProfile, ProfileProvider } from './chunk-W2SFTXMT.js';
14
- import { LabelSchema, DescriptionSchema, PathSchema, ModelIdSchema, IconNameSchema, SystemLifecycleSchema, OntologyIdSchema, SystemPathSchema, ActionInvocationSchema, SystemIdSchema, NodeIdStringSchema, JsonValueSchema, SystemInterfaceRefSchema, EntitiesDomainSchema, ActionsDomainSchema, DEFAULT_ORGANIZATION_MODEL_ACTIONS, OntologyScopeSchema, DEFAULT_ONTOLOGY_SCOPE, SystemsDomainSchema, DEFAULT_ORGANIZATION_MODEL_SYSTEMS, defineEntities, defineActions, listAllSystems, compileOrganizationOntology, listResolvedOntologyRecords, getErrorInfo, getErrorTitle, formatErrorMessage, isAPIClientError, getResourceIcon, formatTimeAgo, getTimeRangeLabel, getTimeRangeDates, formatBucketTime, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, STALE_TIME_MONITORING, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT, formatDateTime, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, getSystem, getAllBuildTemplates, getLeadGenStageCatalog, formatDate, formatRelativeTime, getResourcesForSystem, ontologyGraphNodeId, parseOntologyId, getAllProspectingStages, getAllPipelines, getAllProjectStatuses, debounce, OAUTH_FLOW_TIMEOUT, devOnlyFor, requiresAdminFor, topLevel, parentOf, ancestorsOf, childrenOf, findById, findByPath, getSystemAncestors, resolveSystemConfig, defaultPathFor } from './chunk-XDEUR36B.js';
14
+ import { LabelSchema, DescriptionSchema, PathSchema, ModelIdSchema, IconNameSchema, SystemLifecycleSchema, OntologyIdSchema, SystemPathSchema, ActionInvocationSchema, SystemIdSchema, NodeIdStringSchema, JsonValueSchema, SystemInterfaceRefSchema, EntitiesDomainSchema, ActionsDomainSchema, DEFAULT_ORGANIZATION_MODEL_ACTIONS, OntologyScopeSchema, DEFAULT_ONTOLOGY_SCOPE, SystemsDomainSchema, DEFAULT_ORGANIZATION_MODEL_SYSTEMS, defineEntities, defineActions, listAllSystems, listResolvedOntologyRecords, getErrorInfo, getErrorTitle, formatErrorMessage, getSystem, compileOrganizationOntology, isAPIClientError, getResourceIcon, formatTimeAgo, getTimeRangeLabel, getTimeRangeDates, formatBucketTime, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, STALE_TIME_MONITORING, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT, formatDateTime, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, getAllBuildTemplates, getLeadGenStageCatalog, formatDate, formatRelativeTime, getResourcesForSystem, ontologyGraphNodeId, parseOntologyId, getAllProspectingStages, getAllPipelines, getAllProjectStatuses, debounce, OAUTH_FLOW_TIMEOUT, devOnlyFor, requiresAdminFor, topLevel, parentOf, ancestorsOf, childrenOf, findById, findByPath, getSystemAncestors, resolveSystemConfig, defaultPathFor } from './chunk-HQPJ6TGV.js';
15
15
  import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-KRWALB24.js';
16
16
  import { useElevasisServices, ElevasisServiceContext, ElevasisServiceProvider } from './chunk-2FTX4WO2.js';
17
17
  import { brandSupabaseOrgId, brandWorkOsOrgId } from './chunk-MQZE7SUI.js';
@@ -202,14 +202,20 @@ var AccessKeys = {
202
202
  organizationManage: { systemPath: "permission.org", action: "manage" },
203
203
  membersManage: { systemPath: "permission.members", action: "manage" },
204
204
  rolesManage: { systemPath: "permission.roles", action: "manage" },
205
+ /** @reserved Reserved for first-class secret administration routes and command surfaces. */
205
206
  secretsManage: { systemPath: "permission.secrets", action: "manage" },
206
207
  operationsRead: { systemPath: "permission.operations", action: DEFAULT_ACCESS_ACTION },
208
+ /** @reserved Reserved for write-level operations administration beyond read-only monitoring. */
207
209
  operationsManage: { systemPath: "permission.operations", action: "manage" },
208
210
  leadGenManage: { systemPath: "sales.lead-gen", action: "manage" },
211
+ /** @reserved Reserved for acquisition administration once that permission namespace is wired. */
209
212
  acquisitionManage: { systemPath: "permission.acquisition", action: "manage" },
213
+ /** @reserved Reserved for project administration permission catalog compatibility. */
210
214
  projectsManage: { systemPath: "permission.projects", action: "manage" },
215
+ /** @reserved Reserved for client administration permission catalog compatibility. */
211
216
  clientsManage: { systemPath: "permission.clients", action: "manage" },
212
217
  operationsOverview: { systemPath: "diagnostic.operations.overview", action: DEFAULT_ACCESS_ACTION },
218
+ /** @reserved Reserved for a diagnostics surface that lists recent operations executions. */
213
219
  operationsRecentExecutions: { systemPath: "diagnostic.operations.recent-executions", action: DEFAULT_ACCESS_ACTION },
214
220
  monitoringExecutionLogs: { systemPath: "diagnostic.monitoring.execution-logs", action: DEFAULT_ACCESS_ACTION },
215
221
  monitoringNotifications: { systemPath: "diagnostic.monitoring.notifications", action: DEFAULT_ACCESS_ACTION }
@@ -1256,7 +1262,8 @@ var ONTOLOGY_REFERENCE_KEY_KINDS = {
1256
1262
  surfaceType: "surface",
1257
1263
  stepCatalog: "catalog"
1258
1264
  };
1259
- function buildOmCrossRefIndex(model) {
1265
+ var omCompilationContextCache = /* @__PURE__ */ new WeakMap();
1266
+ function buildOmCrossRefIndexFromOntology(model, ontologyCompilation) {
1260
1267
  const systemsById = /* @__PURE__ */ new Map();
1261
1268
  for (const { path, system } of listAllSystems(model)) {
1262
1269
  systemsById.set(path, system);
@@ -1270,7 +1277,6 @@ function buildOmCrossRefIndex(model) {
1270
1277
  const actionIds = new Set(Object.keys(model.actions ?? {}));
1271
1278
  const customerSegmentIds = new Set(Object.keys(model.customers ?? {}));
1272
1279
  const offeringIds = new Set(Object.keys(model.offerings ?? {}));
1273
- const ontologyCompilation = compileOrganizationOntology(model);
1274
1280
  const ontologyIndexByKind = {
1275
1281
  object: ontologyCompilation.ontology.objectTypes,
1276
1282
  link: ontologyCompilation.ontology.linkTypes,
@@ -1309,6 +1315,15 @@ function buildOmCrossRefIndex(model) {
1309
1315
  stageIds
1310
1316
  };
1311
1317
  }
1318
+ function buildOmCompilationContext(model) {
1319
+ const cached = omCompilationContextCache.get(model);
1320
+ if (cached !== void 0) return cached;
1321
+ const ontologyCompilation = compileOrganizationOntology(model);
1322
+ const crossRefIndex = buildOmCrossRefIndexFromOntology(model, ontologyCompilation);
1323
+ const context = { crossRefIndex, ontologyCompilation };
1324
+ omCompilationContextCache.set(model, context);
1325
+ return context;
1326
+ }
1312
1327
  function knowledgeTargetExists(index, kind, id) {
1313
1328
  if (kind === "system") return index.systemsById.has(id);
1314
1329
  if (kind === "client") return index.clientIds.has(id);
@@ -1645,9 +1660,8 @@ function refineOrganizationModel(model, ctx) {
1645
1660
  }
1646
1661
  });
1647
1662
  });
1648
- const idx = buildOmCrossRefIndex(model);
1663
+ const { crossRefIndex: idx, ontologyCompilation } = buildOmCompilationContext(model);
1649
1664
  const { ontologyIndexByKind, ontologyIds } = idx;
1650
- const ontologyCompilation = compileOrganizationOntology(model);
1651
1665
  function topologyTargetExists(ref) {
1652
1666
  if (ref.kind === "system") return systemsById.has(ref.id);
1653
1667
  if (ref.kind === "resource") return resourcesById.has(ref.id);
@@ -23830,1298 +23844,284 @@ var platformNavigation = {
23830
23844
  }
23831
23845
  };
23832
23846
 
23833
- // ../elevasis-core/src/organization-model/resource-routing.ts
23834
- function getPlatformOwnerRoleId(systemId) {
23835
- switch (systemId) {
23836
- case "sales.lead-gen":
23837
- return "role.growth-operator";
23838
- case "sales.crm":
23839
- return "role.crm-operator";
23840
- case "seo":
23841
- return "role.website-operator";
23842
- case "client-management":
23843
- return "role.client-support-operator";
23844
- case "platform":
23845
- return "role.operator";
23846
- case "platform.projects":
23847
- default:
23848
- return "role.operator";
23849
- }
23850
- }
23851
-
23852
- // ../elevasis-core/src/organization-model/resources.ts
23853
- var platformWorkflowResourceSeeds = [
23854
- ["resend-diagnostic", "platform"],
23855
- ["instantly-diagnostic", "sales.lead-gen"],
23856
- ["stripe-diagnostic", "platform"],
23857
- ["dropbox-diagnostic", "platform"],
23858
- ["signature-api-diagnostic", "platform"],
23859
- ["apify-diagnostic", "sales.lead-gen"],
23860
- ["full-diagnostic", "platform"],
23861
- ["diagnostic-test-data", "platform"],
23862
- ["cutover-org-model-smoke-workflow", "platform"],
23863
- ["crm-action-system-smoke-workflow", "sales.crm"],
23864
- ["anymailfinder-diagnostic-workflow", "sales.lead-gen"],
23865
- ["lgn-dtc-apollo-pipeline-diagnostic", "sales.lead-gen"],
23866
- ["lgn-email-discovery-boundary-diagnostic-workflow", "sales.lead-gen"],
23867
- ["lgn-data-integrity-diagnostic", "sales.lead-gen"],
23868
- ["lgn-email-discovery-diagnostic-workflow", "sales.lead-gen"],
23869
- ["instantly-diagnostic-workflow", "sales.lead-gen"],
23870
- ["lgn-diagnostic-orchestrator", "sales.lead-gen"],
23871
- ["lgn-lead-filter-diagnostic", "sales.lead-gen"],
23872
- ["lgn-pipeline-diagnostic", "sales.lead-gen"],
23873
- ["lgn-qualification-diagnostic", "sales.lead-gen"],
23874
- ["lgn-scrape-diagnostic", "sales.lead-gen"],
23875
- ["lgn-tomba-diagnostic-workflow", "sales.lead-gen"],
23876
- ["lgn-verification-diagnostic", "sales.lead-gen"],
23877
- ["lgn-website-extract-diagnostic-workflow", "sales.lead-gen"],
23878
- ["lgn-amf-discovery-diagnostic-workflow", "sales.lead-gen"],
23879
- ["lgn-tomba-discovery-diagnostic-workflow", "sales.lead-gen"],
23880
- ["resend-unsubscribe-diagnostic-workflow", "platform"],
23881
- ["instantly-thread-diagnostic-workflow", "sales.lead-gen"],
23882
- ["instantly-thread-link-backfill-workflow", "sales.lead-gen"],
23883
- ["instantly-reply-cleanup-workflow", "sales.lead-gen"],
23884
- ["inb-integration-test", "sales.crm"],
23885
- ["organic-booking-diagnostic-workflow", "sales.crm"],
23886
- ["organic-booking-cleanup-workflow", "sales.crm"],
23887
- ["crm-timeout-checker-diagnostic-workflow", "sales.crm"],
23888
- ["ist-toolkit-diagnostic-workflow", "sales.lead-gen"],
23889
- ["ist-toolkit-diagnostic-orchestrator", "sales.lead-gen"],
23890
- ["ist-cross-batch-prompting-diagnostic-workflow", "sales.lead-gen"],
23891
- ["llm-diagnostic", "platform"],
23892
- ["execution-diagnostic", "platform"],
23893
- ["scheduler-diagnostic", "platform"],
23894
- ["storage-diagnostic", "platform"],
23895
- ["lead-diagnostic", "platform"],
23896
- ["email-diagnostic", "platform"],
23897
- ["approval-diagnostic", "platform"],
23898
- ["pdf-diagnostic", "platform"],
23899
- ["notification-diagnostic", "platform"],
23900
- ["notification-sequence-diagnostic", "platform"],
23901
- ["echo", "platform"],
23902
- ["migration-smoke", "platform"],
23903
- ["inb-01-instantly-reply-handler-workflow", "sales.crm"],
23904
- ["inb-01-booking-nudge-workflow", "sales.crm"],
23905
- ["inb-01-send-booking-reply-workflow", "sales.crm"],
23906
- ["inb-01-send-subsequent-reply-workflow", "sales.crm"],
23907
- ["inb-02-discovery-reminder-workflow", "sales.crm"],
23908
- ["cal-booking-revert-workflow", "sales.crm"],
23909
- ["inb-02-booking-handler-workflow", "sales.crm"],
23910
- ["inb-02b-organic-booking-handler-workflow", "sales.crm"],
23911
- ["inb-03-discovery-form-handler-workflow", "sales.crm"],
23912
- ["discovery-form-revert-workflow", "sales.crm"],
23913
- ["inb-pipeline-timeout-nurture-workflow", "sales.crm"],
23914
- ["inb-pipeline-timeout-close-lost-workflow", "sales.crm"],
23915
- ["inb-pipeline-timeout-no-show-workflow", "sales.crm"],
23916
- ["inb-pipeline-timeout-followup-workflow", "sales.crm"],
23917
- ["inb-pipeline-timeout-checker-workflow", "sales.crm"],
23918
- ["inb-pipeline-unsubscribe-cleanup-workflow", "sales.crm"],
23919
- ["inb-full-cleanup-workflow", "sales.crm"],
23920
- ["lgn-01a-google-maps-scrape-workflow", "sales.lead-gen", "lead-gen.company.source"],
23921
- ["lgn-01b-apify-acquire-workflow", "sales.lead-gen", "lead-gen.company.source"],
23922
- ["lgn-01c-apollo-import-workflow", "sales.lead-gen", "lead-gen.company.apollo-import"],
23923
- ["lgn-02a-apify-website-crawl-workflow", "sales.lead-gen", "lead-gen.company.apify-crawl"],
23924
- ["lgn-02-website-extract-workflow", "sales.lead-gen", "lead-gen.company.website-extract"],
23925
- ["lgn-website-extract-compare-workflow", "sales.lead-gen"],
23926
- ["lgn-03-company-qualification-workflow", "sales.lead-gen", "lead-gen.company.qualify"],
23927
- ["lgn-03b-dtc-subscription-score-workflow", "sales.lead-gen", "lead-gen.company.dtc-subscription-qualify"],
23928
- ["lgn-04-email-discovery-workflow", "sales.lead-gen", "lead-gen.contact.discover"],
23929
- ["lgn-04b-apollo-decision-maker-enrich-workflow", "sales.lead-gen", "lead-gen.contact.apollo-decision-maker-enrich"],
23930
- ["lgn-05-email-verification-workflow", "sales.lead-gen", "lead-gen.contact.verify-email"],
23931
- ["lgn-06-export-list-workflow", "sales.lead-gen", "lead-gen.export.list"],
23932
- ["lgn-import-workflow", "sales.lead-gen", "lead-gen.company.source"],
23933
- ["lgn-company-cleanup-workflow", "sales.lead-gen", "lead-gen.company.cleanup"],
23934
- ["lgn-assign-to-list-workflow", "sales.lead-gen"],
23935
- ["ist-upload-contacts-workflow", "sales.lead-gen", "lead-gen.review.outreach-ready"],
23936
- ["ist-campaign-create-workflow", "sales.lead-gen", "campaign.create"],
23937
- ["ist-analytics-workflow", "sales.lead-gen", "campaign.analyze"],
23938
- ["ist-ab-suggest-workflow", "sales.lead-gen", "campaign.optimize"],
23939
- ["ist-personalization-workflow", "sales.lead-gen", "lead-gen.contact.personalize"],
23940
- ["ist-campaign-review-workflow", "sales.lead-gen", "campaign.analyze"],
23941
- ["ist-cleanup-workflow", "sales.lead-gen", "campaign.delete"],
23942
- ["ist-campaign-list-workflow", "sales.lead-gen", "campaign.sync-list"],
23943
- ["ist-campaign-delete-workflow", "sales.lead-gen", "campaign.delete"],
23944
- ["ist-account-inventory-workflow", "sales.lead-gen", "campaign.analyze"],
23945
- ["ist-campaign-pause-workflow", "sales.lead-gen", "campaign.pause"],
23946
- ["ist-campaign-activate-workflow", "sales.lead-gen", "campaign.activate"],
23947
- ["ist-campaign-update-accounts-workflow", "sales.lead-gen", "campaign.update"],
23948
- ["ist-update-lead-variables-workflow", "sales.lead-gen", "campaign.update"],
23949
- ["mnt-reddit-monitor-workflow", "sales.lead-gen"],
23950
- ["mnt-reddit-scan-workflow", "sales.lead-gen"],
23951
- ["mnt-linkedin-monitor-workflow", "sales.lead-gen"],
23952
- ["website-form-intake-handler-workflow", "seo"],
23953
- ["grsi-change-request-workflow", "client-management"],
23954
- ["iss-submission-workflow", "client-management", "client-management.support-issue.review"],
23955
- ["youtube-research-workflow", "platform"],
23956
- ["send-email-workflow", "platform"],
23957
- ["platform-status", "platform"],
23958
- ["deal-browse", "sales.crm"],
23959
- ["crm-send-reply-workflow", "sales.crm", "send_reply"],
23960
- ["crm-reply-followup-workflow", "sales.crm", "reply_followup"],
23961
- ["crm-send-booking-link-workflow", "sales.crm", "send_link"],
23962
- ["crm-send-nudge-workflow", "sales.crm", "send_nudge"],
23963
- ["crm-rebook-workflow", "sales.crm", "rebook"],
23964
- ["move_to_proposal-workflow", "sales.crm", "move_to_proposal"],
23965
- ["move_to_closing-workflow", "sales.crm", "move_to_closing"],
23966
- ["move_to_closed_won-workflow", "sales.crm", "move_to_closed_won"],
23967
- ["move_to_closed_lost-workflow", "sales.crm", "move_to_closed_lost"],
23968
- ["move_to_nurturing-workflow", "sales.crm", "move_to_nurturing"],
23969
- ["mark_no_show-workflow", "sales.crm", "mark_no_show"]
23970
- ];
23971
- var leadGenCompany = "sales.lead-gen:object/company";
23972
- var leadGenContact = "sales.lead-gen:object/contact";
23973
- var leadGenList = "sales.lead-gen:object/list";
23974
- var leadGenCampaign = "sales.lead-gen:object/campaign";
23975
- var leadGenCompanyStage = "sales.lead-gen:catalog/company-stage";
23976
- var leadGenContactStage = "sales.lead-gen:catalog/contact-stage";
23977
- var leadGenBuildTemplate = "sales.lead-gen:catalog/build-template";
23978
- var leadGenLocalServicesTemplateStep = "sales.lead-gen:catalog/template-step.local-services";
23979
- var leadGenDtcSubscriptionTemplateStep = "sales.lead-gen:catalog/template-step.dtc-subscription";
23980
- var leadGenCampaignStatus = "sales.lead-gen:catalog/campaign-status";
23981
- var crmDeal = "sales.crm:object/deal";
23982
- var crmContact = "sales.crm:object/contact";
23983
- var crmPipeline = "sales.crm:catalog/crm.pipeline";
23984
- var clientSupportIssue = "client-management:object/support-issue";
23985
- var clientSupportIssueSeverity = "client-management:catalog/support-issue-severity";
23986
- var workflowOntologyBindingsByBuildActionKey = {
23987
- "lead-gen.company.source": {
23988
- actions: ["sales.lead-gen:action/company.source"],
23989
- primaryAction: "sales.lead-gen:action/company.source",
23990
- writes: [leadGenCompany],
23991
- usesCatalogs: [leadGenBuildTemplate, leadGenLocalServicesTemplateStep]
23992
- },
23993
- "lead-gen.company.apollo-import": {
23994
- actions: ["sales.lead-gen:action/company.source"],
23995
- primaryAction: "sales.lead-gen:action/company.source",
23996
- writes: [leadGenCompany, leadGenContact],
23997
- usesCatalogs: [leadGenBuildTemplate, leadGenDtcSubscriptionTemplateStep]
23998
- },
23999
- "lead-gen.company.apify-crawl": {
24000
- actions: ["sales.lead-gen:action/company.website-extract"],
24001
- primaryAction: "sales.lead-gen:action/company.website-extract",
24002
- reads: [leadGenCompany],
24003
- writes: [leadGenCompany]
24004
- },
24005
- "lead-gen.company.website-extract": {
24006
- actions: ["sales.lead-gen:action/company.website-extract"],
24007
- primaryAction: "sales.lead-gen:action/company.website-extract",
24008
- reads: [leadGenCompany],
24009
- writes: [leadGenCompany, leadGenContact]
24010
- },
24011
- "lead-gen.company.qualify": {
24012
- actions: ["sales.lead-gen:action/company.qualify"],
24013
- primaryAction: "sales.lead-gen:action/company.qualify",
24014
- reads: [leadGenCompany],
24015
- writes: [leadGenCompany],
24016
- usesCatalogs: [leadGenCompanyStage],
24017
- emits: ["sales.lead-gen:event/company.qualified"]
24018
- },
24019
- "lead-gen.company.dtc-subscription-qualify": {
24020
- actions: ["sales.lead-gen:action/company.qualify"],
24021
- primaryAction: "sales.lead-gen:action/company.qualify",
24022
- reads: [leadGenCompany],
24023
- writes: [leadGenCompany],
24024
- usesCatalogs: [leadGenCompanyStage, leadGenDtcSubscriptionTemplateStep],
24025
- emits: ["sales.lead-gen:event/company.qualified"]
24026
- },
24027
- "lead-gen.contact.discover": {
24028
- actions: ["sales.lead-gen:action/contact.discover"],
24029
- primaryAction: "sales.lead-gen:action/contact.discover",
24030
- reads: [leadGenCompany],
24031
- writes: [leadGenContact],
24032
- usesCatalogs: [leadGenContactStage]
24033
- },
24034
- "lead-gen.contact.apollo-decision-maker-enrich": {
24035
- actions: ["sales.lead-gen:action/contact.discover"],
24036
- primaryAction: "sales.lead-gen:action/contact.discover",
24037
- reads: [leadGenCompany],
24038
- writes: [leadGenContact],
24039
- usesCatalogs: [leadGenContactStage]
24040
- },
24041
- "lead-gen.contact.verify-email": {
24042
- actions: ["sales.lead-gen:action/contact.verify-email"],
24043
- primaryAction: "sales.lead-gen:action/contact.verify-email",
24044
- reads: [leadGenContact],
24045
- writes: [leadGenContact],
24046
- usesCatalogs: [leadGenContactStage],
24047
- emits: ["sales.lead-gen:event/contact.verified"]
24048
- },
24049
- "lead-gen.contact.personalize": {
24050
- actions: ["sales.lead-gen:action/contact.personalize"],
24051
- primaryAction: "sales.lead-gen:action/contact.personalize",
24052
- reads: [leadGenContact],
24053
- writes: [leadGenContact],
24054
- usesCatalogs: [leadGenContactStage]
24055
- },
24056
- "lead-gen.review.outreach-ready": {
24057
- actions: ["sales.lead-gen:action/export.list"],
24058
- primaryAction: "sales.lead-gen:action/export.list",
24059
- reads: [leadGenContact, leadGenList],
24060
- writes: [leadGenList],
24061
- usesCatalogs: [leadGenBuildTemplate],
24062
- emits: ["sales.lead-gen:event/list.exported"]
24063
- },
24064
- "lead-gen.export.list": {
24065
- actions: ["sales.lead-gen:action/export.list"],
24066
- primaryAction: "sales.lead-gen:action/export.list",
24067
- reads: [leadGenCompany, leadGenContact, leadGenList],
24068
- writes: [leadGenList],
24069
- usesCatalogs: [
24070
- leadGenBuildTemplate,
24071
- leadGenLocalServicesTemplateStep,
24072
- leadGenDtcSubscriptionTemplateStep,
24073
- leadGenCompanyStage,
24074
- leadGenContactStage,
24075
- crmPipeline
24076
- ],
24077
- emits: ["sales.lead-gen:event/list.exported"]
24078
- },
24079
- "campaign.create": {
24080
- actions: ["sales.lead-gen:action/campaign.create"],
24081
- primaryAction: "sales.lead-gen:action/campaign.create",
24082
- writes: [leadGenCampaign],
24083
- usesCatalogs: [leadGenCampaignStatus]
24084
- },
24085
- "campaign.analyze": {
24086
- actions: ["sales.lead-gen:action/campaign.analyze"],
24087
- primaryAction: "sales.lead-gen:action/campaign.analyze",
24088
- reads: [leadGenCampaign],
24089
- usesCatalogs: [leadGenCampaignStatus]
24090
- },
24091
- "campaign.optimize": {
24092
- actions: ["sales.lead-gen:action/campaign.optimize"],
24093
- primaryAction: "sales.lead-gen:action/campaign.optimize",
24094
- reads: [leadGenCampaign],
24095
- writes: [leadGenCampaign],
24096
- usesCatalogs: [leadGenCampaignStatus]
24097
- },
24098
- "campaign.update": {
24099
- actions: ["sales.lead-gen:action/campaign.update"],
24100
- primaryAction: "sales.lead-gen:action/campaign.update",
24101
- reads: [leadGenCampaign],
24102
- writes: [leadGenCampaign],
24103
- usesCatalogs: [leadGenCampaignStatus]
24104
- },
24105
- "campaign.activate": {
24106
- actions: ["sales.lead-gen:action/campaign.activate"],
24107
- primaryAction: "sales.lead-gen:action/campaign.activate",
24108
- reads: [leadGenCampaign],
24109
- writes: [leadGenCampaign],
24110
- usesCatalogs: [leadGenCampaignStatus]
24111
- },
24112
- "campaign.pause": {
24113
- actions: ["sales.lead-gen:action/campaign.pause"],
24114
- primaryAction: "sales.lead-gen:action/campaign.pause",
24115
- reads: [leadGenCampaign],
24116
- writes: [leadGenCampaign],
24117
- usesCatalogs: [leadGenCampaignStatus]
24118
- },
24119
- "campaign.delete": {
24120
- actions: ["sales.lead-gen:action/campaign.delete"],
24121
- primaryAction: "sales.lead-gen:action/campaign.delete",
24122
- reads: [leadGenCampaign],
24123
- writes: [leadGenCampaign],
24124
- usesCatalogs: [leadGenCampaignStatus]
24125
- },
24126
- "campaign.sync-list": {
24127
- actions: ["sales.lead-gen:action/campaign.sync-list"],
24128
- primaryAction: "sales.lead-gen:action/campaign.sync-list",
24129
- reads: [leadGenCampaign, leadGenContact],
24130
- writes: [leadGenList],
24131
- usesCatalogs: [leadGenBuildTemplate, leadGenCampaignStatus]
24132
- },
24133
- "client-management.support-issue.review": {
24134
- actions: ["client-management:action/support-issue.review"],
24135
- primaryAction: "client-management:action/support-issue.review",
24136
- writes: [clientSupportIssue],
24137
- usesCatalogs: [clientSupportIssueSeverity],
24138
- emits: ["client-management:event/support-issue.submitted"]
24139
- },
24140
- "lead-gen.company.cleanup": {
24141
- actions: ["sales.lead-gen:action/company.qualify"],
24142
- primaryAction: "sales.lead-gen:action/company.qualify",
24143
- reads: [leadGenCompany],
24144
- writes: [leadGenCompany],
24145
- usesCatalogs: [leadGenCompanyStage]
24146
- },
24147
- send_reply: {
24148
- actions: ["sales.crm:action/deal.send-reply"],
24149
- primaryAction: "sales.crm:action/deal.send-reply",
24150
- reads: [crmDeal, crmContact],
24151
- writes: [crmDeal]
24152
- },
24153
- reply_followup: {
24154
- actions: ["sales.crm:action/deal.send-reply"],
24155
- primaryAction: "sales.crm:action/deal.send-reply",
24156
- reads: [crmDeal, crmContact],
24157
- writes: [crmDeal]
24158
- },
24159
- send_link: {
24160
- actions: ["sales.crm:action/deal.send-booking-link"],
24161
- primaryAction: "sales.crm:action/deal.send-booking-link",
24162
- reads: [crmDeal, crmContact],
24163
- writes: [crmDeal]
24164
- },
24165
- send_nudge: {
24166
- actions: ["sales.crm:action/deal.send-nudge"],
24167
- primaryAction: "sales.crm:action/deal.send-nudge",
24168
- reads: [crmDeal, crmContact],
24169
- writes: [crmDeal]
24170
- },
24171
- rebook: {
24172
- actions: ["sales.crm:action/deal.rebook"],
24173
- primaryAction: "sales.crm:action/deal.rebook",
24174
- reads: [crmDeal, crmContact],
24175
- writes: [crmDeal]
24176
- },
24177
- move_to_proposal: {
24178
- actions: ["sales.crm:action/deal.update-stage"],
24179
- primaryAction: "sales.crm:action/deal.update-stage",
24180
- reads: [crmDeal],
24181
- writes: [crmDeal],
24182
- usesCatalogs: [crmPipeline],
24183
- emits: ["sales.crm:event/deal.stage-changed"]
24184
- },
24185
- move_to_closing: {
24186
- actions: ["sales.crm:action/deal.update-stage"],
24187
- primaryAction: "sales.crm:action/deal.update-stage",
24188
- reads: [crmDeal],
24189
- writes: [crmDeal],
24190
- usesCatalogs: [crmPipeline],
24191
- emits: ["sales.crm:event/deal.stage-changed"]
24192
- },
24193
- move_to_closed_won: {
24194
- actions: ["sales.crm:action/deal.update-stage"],
24195
- primaryAction: "sales.crm:action/deal.update-stage",
24196
- reads: [crmDeal],
24197
- writes: [crmDeal],
24198
- usesCatalogs: [crmPipeline],
24199
- emits: ["sales.crm:event/deal.stage-changed"]
24200
- },
24201
- move_to_closed_lost: {
24202
- actions: ["sales.crm:action/deal.update-stage"],
24203
- primaryAction: "sales.crm:action/deal.update-stage",
24204
- reads: [crmDeal],
24205
- writes: [crmDeal],
24206
- usesCatalogs: [crmPipeline],
24207
- emits: ["sales.crm:event/deal.stage-changed"]
24208
- },
24209
- move_to_nurturing: {
24210
- actions: ["sales.crm:action/deal.update-stage"],
24211
- primaryAction: "sales.crm:action/deal.update-stage",
24212
- reads: [crmDeal],
24213
- writes: [crmDeal],
24214
- usesCatalogs: [crmPipeline],
24215
- emits: ["sales.crm:event/deal.stage-changed"]
24216
- },
24217
- mark_no_show: {
24218
- actions: ["sales.crm:action/deal.update-stage"],
24219
- primaryAction: "sales.crm:action/deal.update-stage",
24220
- reads: [crmDeal],
24221
- writes: [crmDeal],
24222
- usesCatalogs: [crmPipeline],
24223
- emits: ["sales.crm:event/deal.stage-changed"]
24224
- }
24225
- };
24226
- var workflowContractsByResourceId = {
24227
- "lgn-01c-apollo-import-workflow": {
24228
- input: "@repo/elevasis-core/contracts/apollo-import#inputSchema"
23847
+ // ../elevasis-core/src/organization-model/actions.ts
23848
+ var LEAD_GEN_ACTION_ENTRY_INPUTS = [
23849
+ {
23850
+ id: "lead-gen.company.source",
23851
+ order: 10,
23852
+ label: "Source companies",
23853
+ description: "Import source companies from a list provider.",
23854
+ scope: { domain: "sales" },
23855
+ resourceId: "lgn-import-workflow",
23856
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/source" }],
23857
+ lifecycle: "active",
23858
+ knowledge: []
24229
23859
  },
24230
- "lgn-04-email-discovery-workflow": {
24231
- input: "@repo/elevasis-core/contracts/email-discovery#emailDiscoveryInputSchema"
23860
+ {
23861
+ id: "lead-gen.company.apollo-import",
23862
+ order: 20,
23863
+ label: "Import from Apollo",
23864
+ description: "Pull companies and seed contact data from an Apollo search or list.",
23865
+ scope: { domain: "sales" },
23866
+ resourceId: "lgn-01c-apollo-import-workflow",
23867
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/apollo-import" }],
23868
+ lifecycle: "active",
23869
+ knowledge: []
24232
23870
  },
24233
- "lgn-05-email-verification-workflow": {
24234
- input: "@repo/elevasis-core/contracts/email-verification#emailVerificationInputSchema"
23871
+ {
23872
+ id: "lead-gen.contact.discover",
23873
+ order: 30,
23874
+ label: "Discover contact emails",
23875
+ description: "Find email addresses for contacts at qualified companies.",
23876
+ scope: { domain: "sales" },
23877
+ resourceId: "lgn-04-email-discovery-workflow",
23878
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/discover" }],
23879
+ lifecycle: "active",
23880
+ knowledge: []
24235
23881
  },
24236
- "lgn-02-website-extract-workflow": {
24237
- input: "@repo/elevasis-core/contracts/website-extract#websiteExtractInputSchema"
23882
+ {
23883
+ id: "lead-gen.contact.verify-email",
23884
+ order: 40,
23885
+ label: "Verify emails",
23886
+ description: "Check email deliverability before outreach.",
23887
+ scope: { domain: "sales" },
23888
+ resourceId: "lgn-05-email-verification-workflow",
23889
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/verify-email" }],
23890
+ lifecycle: "active",
23891
+ knowledge: []
24238
23892
  },
24239
- "lgn-02a-apify-website-crawl-workflow": {
24240
- input: "@repo/elevasis-core/contracts/apify-website-crawl#apifyWebsiteCrawlInputSchema"
23893
+ {
23894
+ id: "lead-gen.company.apify-crawl",
23895
+ order: 50,
23896
+ label: "Crawl websites",
23897
+ description: "Crawl company websites via Apify and store raw page markdown for downstream LLM analysis.",
23898
+ scope: { domain: "sales" },
23899
+ resourceId: "lgn-02a-apify-website-crawl-workflow",
23900
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/apify-crawl" }],
23901
+ lifecycle: "active",
23902
+ knowledge: []
24241
23903
  },
24242
- "lgn-03b-dtc-subscription-score-workflow": {
24243
- input: "@repo/elevasis-core/contracts/dtc-subscription-score#dtcSubscriptionScoreInputSchema",
24244
- output: "@repo/elevasis-core/contracts/dtc-subscription-score#outputSchema"
23904
+ {
23905
+ id: "lead-gen.company.website-extract",
23906
+ order: 60,
23907
+ label: "Extract website signals",
23908
+ description: "Scrape and analyze company websites for qualification signals.",
23909
+ scope: { domain: "sales" },
23910
+ resourceId: "lgn-02-website-extract-workflow",
23911
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/website-extract" }],
23912
+ lifecycle: "active",
23913
+ knowledge: []
24245
23914
  },
24246
- "lgn-04b-apollo-decision-maker-enrich-workflow": {
24247
- input: "@repo/elevasis-core/contracts/apollo-decision-makers#apolloDecisionMakerEnrichInputSchema"
23915
+ {
23916
+ id: "lead-gen.company.qualify",
23917
+ order: 70,
23918
+ label: "Qualify companies",
23919
+ description: "Score and filter companies against the ICP rubric.",
23920
+ scope: { domain: "sales" },
23921
+ resourceId: "lgn-03-company-qualification-workflow",
23922
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/qualify" }],
23923
+ lifecycle: "active",
23924
+ knowledge: []
24248
23925
  },
24249
- "lgn-06-export-list-workflow": {
24250
- input: "@repo/elevasis-core/contracts/export-list#approvedLeadListExportInputSchema"
23926
+ {
23927
+ id: "lead-gen.company.dtc-subscription-qualify",
23928
+ order: 80,
23929
+ label: "Qualify DTC subscription fit",
23930
+ description: "Classify subscription potential and consumable-product fit for DTC brands.",
23931
+ scope: { domain: "sales" },
23932
+ resourceId: "lgn-03b-dtc-subscription-score-workflow",
23933
+ invocations: [
23934
+ { kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/dtc-subscription-qualify" }
23935
+ ],
23936
+ lifecycle: "active",
23937
+ knowledge: []
24251
23938
  },
24252
- "lgn-company-cleanup-workflow": {
24253
- input: "@repo/elevasis-core/contracts/company-cleanup#companyCleanupInputSchema"
23939
+ {
23940
+ id: "lead-gen.contact.apollo-decision-maker-enrich",
23941
+ order: 90,
23942
+ label: "Enrich decision-makers",
23943
+ description: "Find and enrich qualified contacts at qualified companies via Apollo.",
23944
+ scope: { domain: "sales" },
23945
+ resourceId: "lgn-04b-apollo-decision-maker-enrich-workflow",
23946
+ invocations: [
23947
+ { kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/apollo-decision-maker-enrich" }
23948
+ ],
23949
+ lifecycle: "active",
23950
+ knowledge: []
24254
23951
  },
24255
- "full-diagnostic": {
24256
- input: "@repo/elevasis-core/contracts/full-diagnostic#inputSchema"
23952
+ {
23953
+ id: "lead-gen.contact.personalize",
23954
+ order: 100,
23955
+ label: "Personalize outreach",
23956
+ description: "Generate personalized opening lines for each contact.",
23957
+ scope: { domain: "sales" },
23958
+ resourceId: "ist-personalization-workflow",
23959
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/personalize" }],
23960
+ lifecycle: "active",
23961
+ knowledge: []
24257
23962
  },
24258
- "inb-integration-test": {
24259
- input: "@repo/elevasis-core/contracts/integration-test#inputSchema"
23963
+ {
23964
+ id: "lead-gen.review.outreach-ready",
23965
+ order: 110,
23966
+ label: "Upload to outreach",
23967
+ description: "Upload approved contacts to the outreach sequence after QC review.",
23968
+ scope: { domain: "sales" },
23969
+ resourceId: "ist-upload-contacts-workflow",
23970
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/review/outreach-ready" }],
23971
+ lifecycle: "active",
23972
+ knowledge: []
24260
23973
  },
24261
- "ist-personalization-workflow": {
24262
- input: "@repo/elevasis-core/contracts/instantly-personalization#inputSchema"
23974
+ {
23975
+ id: "lead-gen.export.list",
23976
+ order: 120,
23977
+ label: "Export lead list",
23978
+ description: "Export approved leads as a downloadable lead list.",
23979
+ scope: { domain: "sales" },
23980
+ resourceId: "lgn-06-export-list-workflow",
23981
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/export/list" }],
23982
+ lifecycle: "active",
23983
+ knowledge: []
24263
23984
  },
24264
- "inb-01-booking-nudge-workflow": {
24265
- input: "@repo/elevasis-core/contracts/booking-nudge#inputSchema"
23985
+ {
23986
+ id: "lead-gen.company.cleanup",
23987
+ order: 130,
23988
+ label: "Clean up companies",
23989
+ description: "Remove disqualified or duplicate companies from the list.",
23990
+ scope: { domain: "sales" },
23991
+ resourceId: "lgn-company-cleanup-workflow",
23992
+ invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/cleanup" }],
23993
+ lifecycle: "active",
23994
+ knowledge: []
24266
23995
  }
24267
- };
24268
- var crmActionWorkflowSchemaCodeRef = {
24269
- path: "packages/elevasis-operations/src/sales/crm/shared/action-workflow-schemas.ts",
24270
- role: "schema",
24271
- symbol: "ActionWorkflowInputSchema"
24272
- };
24273
- var platformWorkflowCodeRefs = {
24274
- echo: [
24275
- {
24276
- path: "packages/elevasis-operations/src/diagnostics/platform/echo-workflow.ts",
24277
- role: "entrypoint",
24278
- symbol: "echoWorkflow"
24279
- }
24280
- ],
24281
- "lgn-01a-google-maps-scrape-workflow": [
24282
- {
24283
- path: "packages/elevasis-operations/src/sales/prospecting/scrape/apify-scrape.ts",
24284
- role: "entrypoint",
24285
- symbol: "ldsApifyScrapeWorkflow"
24286
- }
24287
- ],
24288
- "lgn-01b-apify-acquire-workflow": [
24289
- {
24290
- path: "packages/elevasis-operations/src/sales/prospecting/scrape/apify-acquire.ts",
24291
- role: "entrypoint",
24292
- symbol: "ldsApifyAcquireWorkflow"
24293
- }
24294
- ],
24295
- "lgn-01c-apollo-import-workflow": [
24296
- {
24297
- path: "packages/elevasis-operations/src/sales/prospecting/scrape/apollo-import.ts",
24298
- role: "entrypoint",
24299
- symbol: "lgnApolloImportWorkflow"
24300
- },
24301
- {
24302
- path: "packages/elevasis-operations/src/sales/prospecting/__tests__/apollo-import.test.ts",
24303
- role: "test"
24304
- }
24305
- ],
24306
- "lgn-03-company-qualification-workflow": [
24307
- {
24308
- path: "packages/elevasis-operations/src/sales/qualification/qualify/company-qualification.ts",
24309
- role: "entrypoint",
24310
- symbol: "ldsCompanyQualificationWorkflow"
24311
- },
24312
- {
24313
- path: "packages/elevasis-operations/src/sales/qualification/qualify/__tests__/company-qualification.test.ts",
24314
- role: "test"
24315
- }
24316
- ],
24317
- "lgn-import-workflow": [
24318
- {
24319
- path: "packages/elevasis-operations/src/sales/prospecting/utilities/lead-import.ts",
24320
- role: "entrypoint",
24321
- symbol: "leadImportWorkflow"
24322
- }
24323
- ],
24324
- "lgn-assign-to-list-workflow": [
24325
- {
24326
- path: "packages/elevasis-operations/src/sales/prospecting/utilities/assign-to-list.ts",
24327
- role: "entrypoint",
24328
- symbol: "lgnAssignToListWorkflow"
24329
- }
24330
- ],
24331
- "lgn-website-extract-compare-workflow": [
24332
- {
24333
- path: "packages/elevasis-operations/src/sales/prospecting/extract/website-extract-compare.ts",
24334
- role: "entrypoint",
24335
- symbol: "lgnWebsiteExtractCompareWorkflow"
24336
- }
24337
- ],
24338
- "lgn-data-integrity-diagnostic": [
24339
- {
24340
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/data-integrity-diagnostic.ts",
24341
- role: "entrypoint",
24342
- symbol: "dataIntegrityDiagnosticWorkflow"
24343
- }
24344
- ],
24345
- "lgn-diagnostic-orchestrator": [
24346
- {
24347
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/lds-diagnostic-orchestrator.ts",
24348
- role: "entrypoint",
24349
- symbol: "ldsDiagnosticOrchestratorWorkflow"
24350
- }
24351
- ],
24352
- "lgn-dtc-apollo-pipeline-diagnostic": [
24353
- {
24354
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/dtc-subscription-apollo-pipeline-diagnostic.ts",
24355
- role: "entrypoint",
24356
- symbol: "dtcSubscriptionApolloPipelineDiagnosticWorkflow"
24357
- },
24358
- {
24359
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/dtc-subscription-apollo-pipeline-diagnostic.test.ts",
24360
- role: "test"
24361
- }
24362
- ],
24363
- "lgn-email-discovery-boundary-diagnostic-workflow": [
24364
- {
24365
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/email-discovery-boundary-diagnostic.ts",
24366
- role: "entrypoint",
24367
- symbol: "emailDiscoveryBoundaryDiagnosticWorkflow"
24368
- }
24369
- ],
24370
- "lgn-email-discovery-diagnostic-workflow": [
24371
- {
24372
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/email-discovery-diagnostic.ts",
24373
- role: "entrypoint",
24374
- symbol: "emailDiscoveryDiagnosticWorkflow"
24375
- }
24376
- ],
24377
- "lgn-lead-filter-diagnostic": [
24378
- {
24379
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/lead-filter-diagnostic.ts",
24380
- role: "entrypoint",
24381
- symbol: "leadFilterDiagnosticWorkflow"
24382
- }
24383
- ],
24384
- "lgn-pipeline-diagnostic": [
24385
- {
24386
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/pipeline-diagnostic.ts",
24387
- role: "entrypoint",
24388
- symbol: "pipelineDiagnosticWorkflow"
24389
- }
24390
- ],
24391
- "lgn-qualification-diagnostic": [
24392
- {
24393
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/qualification-diagnostic.ts",
24394
- role: "entrypoint",
24395
- symbol: "qualificationDiagnosticWorkflow"
24396
- }
24397
- ],
24398
- "lgn-scrape-diagnostic": [
24399
- {
24400
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/scrape-diagnostic.ts",
24401
- role: "entrypoint",
24402
- symbol: "scrapeDiagnosticWorkflow"
24403
- }
24404
- ],
24405
- "lgn-tomba-diagnostic-workflow": [
24406
- {
24407
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/tomba-diagnostic.ts",
24408
- role: "entrypoint",
24409
- symbol: "tombaDiagnosticWorkflow"
24410
- }
24411
- ],
24412
- "lgn-verification-diagnostic": [
24413
- {
24414
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/verification-diagnostic.ts",
24415
- role: "entrypoint",
24416
- symbol: "verificationDiagnosticWorkflow"
24417
- },
24418
- {
24419
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/verification-diagnostic.test.ts",
24420
- role: "test"
24421
- }
24422
- ],
24423
- "lgn-website-extract-diagnostic-workflow": [
24424
- {
24425
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/website-extract-diagnostic.ts",
24426
- role: "entrypoint",
24427
- symbol: "websiteExtractDiagnosticWorkflow"
24428
- }
24429
- ],
24430
- "lgn-amf-discovery-diagnostic-workflow": [
24431
- {
24432
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/amf-discovery-diagnostic.ts",
24433
- role: "entrypoint",
24434
- symbol: "amfDiscoveryDiagnosticWorkflow"
24435
- }
24436
- ],
24437
- "lgn-tomba-discovery-diagnostic-workflow": [
24438
- {
24439
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/tomba-discovery-diagnostic.ts",
24440
- role: "entrypoint",
24441
- symbol: "tombaDiscoveryDiagnosticWorkflow"
24442
- }
24443
- ],
24444
- "anymailfinder-diagnostic-workflow": [
24445
- {
24446
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/anymailfinder-diagnostic.ts",
24447
- role: "entrypoint",
24448
- symbol: "anymailfinderDiagnosticWorkflow"
24449
- }
24450
- ],
24451
- "instantly-diagnostic-workflow": [
24452
- {
24453
- path: "packages/elevasis-operations/src/diagnostics/lead-gen/instantly-diagnostic.ts",
24454
- role: "entrypoint",
24455
- symbol: "instantlyDiagnosticWorkflow"
24456
- }
24457
- ],
24458
- "ist-upload-contacts-workflow": [
24459
- {
24460
- path: "packages/elevasis-operations/src/sales/outreach/instantly/instantly-upload.ts",
24461
- role: "entrypoint",
24462
- symbol: "ldsInstantlyUploadWorkflow"
24463
- }
24464
- ],
24465
- "inb-01-instantly-reply-handler-workflow": [
24466
- {
24467
- path: "packages/elevasis-operations/src/sales/outreach/reply/instantly-reply-handler.ts",
24468
- role: "entrypoint",
24469
- symbol: "instantlyReplyHandlerWorkflow"
24470
- }
24471
- ],
24472
- "inb-01-send-booking-reply-workflow": [
24473
- {
24474
- path: "packages/elevasis-operations/src/sales/outreach/reply/send-booking-reply.ts",
24475
- role: "entrypoint",
24476
- symbol: "sendBookingReplyWorkflow"
24477
- }
24478
- ],
24479
- "inb-01-send-subsequent-reply-workflow": [
24480
- {
24481
- path: "packages/elevasis-operations/src/sales/outreach/reply/send-subsequent-reply.ts",
24482
- role: "entrypoint",
24483
- symbol: "sendSubsequentReplyWorkflow"
24484
- }
24485
- ],
24486
- "inb-01-booking-nudge-workflow": [
24487
- {
24488
- path: "packages/elevasis-operations/src/sales/outreach/reply/booking-nudge.ts",
24489
- role: "entrypoint",
24490
- symbol: "bookingNudgeWorkflow"
24491
- },
24492
- {
24493
- path: "packages/elevasis-operations/src/sales/outreach/reply/booking-nudge-schema.ts",
24494
- role: "schema"
24495
- }
24496
- ],
24497
- "inb-02-booking-handler-workflow": [
24498
- {
24499
- path: "packages/elevasis-operations/src/sales/crm/booking/booking-handler.ts",
24500
- role: "entrypoint",
24501
- symbol: "bookingHandlerWorkflow"
24502
- }
24503
- ],
24504
- "cal-booking-revert-workflow": [
24505
- {
24506
- path: "packages/elevasis-operations/src/sales/crm/booking/booking-revert.ts",
24507
- role: "entrypoint",
24508
- symbol: "bookingRevertWorkflow"
24509
- }
24510
- ],
24511
- "inb-02-discovery-reminder-workflow": [
24512
- {
24513
- path: "packages/elevasis-operations/src/sales/crm/booking/discovery-reminder.ts",
24514
- role: "entrypoint",
24515
- symbol: "discoveryReminderWorkflow"
24516
- }
24517
- ],
24518
- "inb-02b-organic-booking-handler-workflow": [
24519
- {
24520
- path: "packages/elevasis-operations/src/sales/crm/booking/organic-booking-handler.ts",
24521
- role: "entrypoint",
24522
- symbol: "organicBookingHandlerWorkflow"
24523
- }
24524
- ],
24525
- "inb-03-discovery-form-handler-workflow": [
24526
- {
24527
- path: "packages/elevasis-operations/src/sales/qualification/discovery/discovery-form-handler.ts",
24528
- role: "entrypoint",
24529
- symbol: "discoveryFormHandlerWorkflow"
24530
- }
24531
- ],
24532
- "discovery-form-revert-workflow": [
24533
- {
24534
- path: "packages/elevasis-operations/src/sales/qualification/discovery/discovery-form-revert.ts",
24535
- role: "entrypoint",
24536
- symbol: "discoveryFormRevertWorkflow"
24537
- }
24538
- ],
24539
- "inb-pipeline-timeout-checker-workflow": [
24540
- {
24541
- path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-checker.ts",
24542
- role: "entrypoint",
24543
- symbol: "timeoutCheckerWorkflow"
24544
- }
24545
- ],
24546
- "inb-pipeline-timeout-followup-workflow": [
24547
- {
24548
- path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
24549
- role: "entrypoint",
24550
- symbol: "timeoutFollowupWorkflow"
24551
- }
24552
- ],
24553
- "inb-pipeline-timeout-nurture-workflow": [
24554
- {
24555
- path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
24556
- role: "entrypoint",
24557
- symbol: "timeoutNurtureWorkflow"
24558
- }
24559
- ],
24560
- "inb-pipeline-timeout-close-lost-workflow": [
24561
- {
24562
- path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
24563
- role: "entrypoint",
24564
- symbol: "timeoutCloseLostWorkflow"
24565
- }
24566
- ],
24567
- "inb-pipeline-timeout-no-show-workflow": [
24568
- {
24569
- path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
24570
- role: "entrypoint",
24571
- symbol: "timeoutNoShowWorkflow"
24572
- }
24573
- ],
24574
- "inb-full-cleanup-workflow": [
24575
- {
24576
- path: "packages/elevasis-operations/src/sales/crm/pipeline/full-cleanup.ts",
24577
- role: "entrypoint",
24578
- symbol: "fullCleanupWorkflow"
24579
- }
24580
- ],
24581
- "inb-pipeline-unsubscribe-cleanup-workflow": [
24582
- {
24583
- path: "packages/elevasis-operations/src/sales/crm/pipeline/unsubscribe-cleanup.ts",
24584
- role: "entrypoint",
24585
- symbol: "unsubscribeCleanupWorkflow"
24586
- }
24587
- ],
24588
- "inb-integration-test": [
24589
- {
24590
- path: "packages/elevasis-operations/src/diagnostics/inbound/integration-test.ts",
24591
- role: "entrypoint",
24592
- symbol: "acqIntegrationTestWorkflow"
24593
- },
24594
- {
24595
- path: "packages/elevasis-operations/src/diagnostics/inbound/integration-test-schema.ts",
24596
- role: "schema"
24597
- }
24598
- ],
24599
- "crm-action-system-smoke-workflow": [
24600
- {
24601
- path: "packages/elevasis-operations/src/diagnostics/cutover/crm-action-system-smoke.ts",
24602
- role: "entrypoint",
24603
- symbol: "crmActionSystemSmokeWorkflow"
24604
- }
24605
- ],
24606
- "cutover-org-model-smoke-workflow": [
24607
- {
24608
- path: "packages/elevasis-operations/src/diagnostics/cutover/org-model-smoke.ts",
24609
- role: "entrypoint",
24610
- symbol: "orgModelSmokeWorkflow"
24611
- }
24612
- ],
24613
- "crm-timeout-checker-diagnostic-workflow": [
24614
- {
24615
- path: "packages/elevasis-operations/src/diagnostics/inbound/timeout-checker-diagnostic.ts",
24616
- role: "entrypoint",
24617
- symbol: "crmTimeoutCheckerDiagnosticWorkflow"
24618
- }
24619
- ],
24620
- "crm-send-reply-workflow": [
24621
- {
24622
- path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-reply.ts",
24623
- role: "entrypoint",
24624
- symbol: "sendReplyWorkflow"
24625
- },
24626
- crmActionWorkflowSchemaCodeRef
24627
- ],
24628
- "crm-reply-followup-workflow": [
24629
- {
24630
- path: "packages/elevasis-operations/src/sales/crm/actions/crm-reply-followup.ts",
24631
- role: "entrypoint",
24632
- symbol: "replyFollowupWorkflow"
24633
- }
24634
- ],
24635
- "crm-send-booking-link-workflow": [
24636
- {
24637
- path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-booking-link.ts",
24638
- role: "entrypoint",
24639
- symbol: "sendBookingLinkWorkflow"
24640
- },
24641
- crmActionWorkflowSchemaCodeRef
24642
- ],
24643
- "crm-send-nudge-workflow": [
24644
- {
24645
- path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-nudge.ts",
24646
- role: "entrypoint",
24647
- symbol: "sendNudgeWorkflow"
24648
- },
24649
- crmActionWorkflowSchemaCodeRef
24650
- ],
24651
- "crm-rebook-workflow": [
24652
- {
24653
- path: "packages/elevasis-operations/src/sales/crm/actions/crm-rebook.ts",
24654
- role: "entrypoint",
24655
- symbol: "rebookWorkflow"
24656
- },
24657
- crmActionWorkflowSchemaCodeRef
24658
- ],
24659
- "move_to_closing-workflow": [
24660
- {
24661
- path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closing.ts",
24662
- role: "entrypoint",
24663
- symbol: "moveToClosingWorkflow"
24664
- },
24665
- crmActionWorkflowSchemaCodeRef
24666
- ],
24667
- "move_to_closed_won-workflow": [
24668
- {
24669
- path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closed-won.ts",
24670
- role: "entrypoint",
24671
- symbol: "moveToClosedWonWorkflow"
24672
- },
24673
- crmActionWorkflowSchemaCodeRef
24674
- ],
24675
- "move_to_closed_lost-workflow": [
24676
- {
24677
- path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closed-lost.ts",
24678
- role: "entrypoint",
24679
- symbol: "moveToClosedLostWorkflow"
24680
- },
24681
- crmActionWorkflowSchemaCodeRef
24682
- ],
24683
- "move_to_nurturing-workflow": [
24684
- {
24685
- path: "packages/elevasis-operations/src/sales/crm/actions/move-to-nurturing.ts",
24686
- role: "entrypoint",
24687
- symbol: "moveToNurturingWorkflow"
24688
- },
24689
- crmActionWorkflowSchemaCodeRef
24690
- ],
24691
- "mark_no_show-workflow": [
24692
- {
24693
- path: "packages/elevasis-operations/src/sales/crm/actions/mark-no-show.ts",
24694
- role: "entrypoint",
24695
- symbol: "markNoShowWorkflow"
24696
- },
24697
- {
24698
- path: "packages/elevasis-operations/src/sales/crm/shared/action-workflow-schemas.ts",
24699
- role: "schema",
24700
- symbol: "ActionWorkflowInputSchema"
24701
- }
24702
- ],
24703
- "move_to_proposal-workflow": [
24704
- {
24705
- path: "packages/elevasis-operations/src/sales/crm/actions/move-to-proposal.ts",
24706
- role: "entrypoint",
24707
- symbol: "moveToProposalWorkflow"
24708
- }
24709
- ]
24710
- };
24711
- var workflowDisplayMetadataByResourceId = {
24712
- "lgn-01a-google-maps-scrape-workflow": {
24713
- title: "LGN-01A Google Maps Scrape",
24714
- description: "Scrape local-services businesses from Google Maps via Apify and source companies into Lead DB."
24715
- },
24716
- "lgn-01b-apify-acquire-workflow": {
24717
- title: "LGN-01B Apify Acquire",
24718
- description: "Acquire and normalize Apify scrape results into Lead DB company records."
24719
- },
24720
- "lgn-01c-apollo-import-workflow": {
24721
- title: "LGN-01C Apollo Import",
24722
- description: "Import DTC subscription companies from Apollo search results into Lead DB"
24723
- },
24724
- "lgn-03-company-qualification-workflow": {
24725
- title: "LGN-03 Company Qualification",
24726
- description: "LLM-based company qualification against ICP signals; marks companies qualified or filtered with reason."
24727
- },
24728
- "lgn-import-workflow": {
24729
- title: "LGN Lead Import",
24730
- description: "Generic import entrypoint for sourcing companies into Lead DB from external batch inputs."
23996
+ ];
23997
+ var LEAD_GEN_ACTION_ENTRIES = defineActions(LEAD_GEN_ACTION_ENTRY_INPUTS);
23998
+ var CRM_ACTION_ENTRY_INPUTS = [
23999
+ {
24000
+ id: "send_reply",
24001
+ order: 210,
24002
+ label: "Send Reply",
24003
+ description: "Send a contextual reply for an active CRM deal.",
24004
+ scope: { domain: "sales" },
24005
+ resourceId: "crm-send-reply-workflow",
24006
+ affects: ["crm.deal"],
24007
+ invocations: [],
24008
+ lifecycle: "active",
24009
+ knowledge: []
24731
24010
  },
24732
- "lgn-assign-to-list-workflow": {
24733
- title: "LGN Assign to List",
24734
- description: "Assign qualified contacts to a target lead list for export and outreach handoff."
24011
+ {
24012
+ id: "send_link",
24013
+ order: 220,
24014
+ label: "Send Booking Link",
24015
+ description: "Send a booking link to move a deal toward a scheduled call.",
24016
+ scope: { domain: "sales" },
24017
+ resourceId: "crm-send-booking-link-workflow",
24018
+ affects: ["crm.deal"],
24019
+ invocations: [],
24020
+ lifecycle: "active",
24021
+ knowledge: []
24735
24022
  },
24736
- "lgn-website-extract-compare-workflow": {
24737
- title: "LGN Website Extract Compare",
24738
- description: "A/B model comparison for website extraction LLM quality testing."
24023
+ {
24024
+ id: "send_nudge",
24025
+ order: 230,
24026
+ label: "Send Nudge",
24027
+ description: "Send a follow-up nudge for a stalled CRM deal.",
24028
+ scope: { domain: "sales" },
24029
+ resourceId: "crm-send-nudge-workflow",
24030
+ affects: ["crm.deal"],
24031
+ invocations: [],
24032
+ lifecycle: "active",
24033
+ knowledge: []
24739
24034
  },
24740
- "lgn-04-email-discovery-workflow": {
24741
- title: "LGN-04 Email Discovery",
24742
- description: "Unified email discovery: Tomba email lookup with AnyMailFinder fallback for qualified company contacts."
24035
+ {
24036
+ id: "rebook",
24037
+ order: 240,
24038
+ label: "Rebook",
24039
+ description: "Rebook a missed or rescheduled CRM appointment.",
24040
+ scope: { domain: "sales" },
24041
+ resourceId: "crm-rebook-workflow",
24042
+ affects: ["crm.deal"],
24043
+ invocations: [],
24044
+ lifecycle: "active",
24045
+ knowledge: []
24743
24046
  },
24744
- "lgn-05-email-verification-workflow": {
24745
- title: "LGN-05 Email Verification",
24746
- description: "Email verification via MillionVerifier with soft-delete for invalid or disposable emails."
24047
+ {
24048
+ id: "move_to_proposal",
24049
+ order: 250,
24050
+ label: "Move to Proposal",
24051
+ description: "Advance a qualified CRM deal into the proposal stage.",
24052
+ scope: { domain: "sales" },
24053
+ resourceId: "move_to_proposal-workflow",
24054
+ affects: ["crm.deal"],
24055
+ invocations: [],
24056
+ lifecycle: "active",
24057
+ knowledge: []
24747
24058
  },
24748
- "lgn-02-website-extract-workflow": {
24749
- title: "LGN-02 Website Extract",
24750
- description: "LLM extraction from raw crawled markdown for company signals, staff, emails, and downstream contacts."
24059
+ {
24060
+ id: "move_to_closing",
24061
+ order: 260,
24062
+ label: "Move to Closing",
24063
+ description: "Advance a proposal-stage CRM deal into closing.",
24064
+ scope: { domain: "sales" },
24065
+ resourceId: "move_to_closing-workflow",
24066
+ affects: ["crm.deal"],
24067
+ invocations: [],
24068
+ lifecycle: "active",
24069
+ knowledge: []
24751
24070
  },
24752
- "lgn-02a-apify-website-crawl-workflow": {
24753
- title: "LGN-02A Apify Website Crawl",
24754
- description: "Crawl company websites via Apify and store page markdown for downstream LLM analysis."
24071
+ {
24072
+ id: "move_to_closed_won",
24073
+ order: 270,
24074
+ label: "Close Won",
24075
+ description: "Mark a CRM deal as closed won.",
24076
+ scope: { domain: "sales" },
24077
+ resourceId: "move_to_closed_won-workflow",
24078
+ affects: ["crm.deal"],
24079
+ invocations: [],
24080
+ lifecycle: "active",
24081
+ knowledge: []
24755
24082
  },
24756
- "lgn-03b-dtc-subscription-score-workflow": {
24757
- title: "LGN-03B DTC Subscription Score",
24758
- description: "Score Apollo-imported brands for DTC subscription fit and mark qualified companies."
24083
+ {
24084
+ id: "move_to_closed_lost",
24085
+ order: 280,
24086
+ label: "Close Lost",
24087
+ description: "Mark a CRM deal as closed lost.",
24088
+ scope: { domain: "sales" },
24089
+ resourceId: "move_to_closed_lost-workflow",
24090
+ affects: ["crm.deal"],
24091
+ invocations: [],
24092
+ lifecycle: "active",
24093
+ knowledge: []
24759
24094
  },
24760
- "lgn-04b-apollo-decision-maker-enrich-workflow": {
24761
- title: "LGN-04B Apollo Decision Makers",
24762
- description: "Enrich qualified DTC companies with prioritized Apollo decision-maker contacts."
24763
- },
24764
- "lgn-06-export-list-workflow": {
24765
- title: "LGN-06 Approved Lead List Export",
24766
- description: "Build and finalize an export-ready approved lead list for qualified DTC subscription prospects."
24767
- },
24768
- "lgn-company-cleanup-workflow": {
24769
- title: "LGN Company Cleanup",
24770
- description: "Classify companies via LLM and delete irrelevant companies from Lead DB."
24771
- },
24772
- "lgn-diagnostic-orchestrator": {
24773
- title: "LGN Diagnostic Orchestrator",
24774
- description: "Meta-workflow that resets diagnostic data and runs internal + external lead-gen diagnostics sequentially with pass/fail summary."
24775
- },
24776
- "lgn-data-integrity-diagnostic": {
24777
- title: "LGN Data Integrity Diagnostic",
24778
- description: "Validates enrichmentData JSONB shape and domain dedup constraints across lead-gen companies."
24779
- },
24780
- "lgn-lead-filter-diagnostic": {
24781
- title: "LGN Lead Filter Diagnostic",
24782
- description: "Regression test for tool-dispatcher filters: verifies listCompanies/listContacts honor batchId, segment, and qualification filters."
24783
- },
24784
- "lgn-qualification-diagnostic": {
24785
- title: "LGN Qualification Diagnostic",
24786
- description: "Isolated LLM qualification smoke test: creates a test contact, runs LLM qualification, verifies DB write, cleans up."
24787
- },
24788
- "lgn-scrape-diagnostic": {
24789
- title: "LGN Scrape Diagnostic",
24790
- description: "Validates Google Maps scraper pipeline by scraping a single business via Apify and verifying company record creation."
24791
- },
24792
- "lgn-pipeline-diagnostic": {
24793
- title: "LGN Pipeline E2E Diagnostic",
24794
- description: "Full E2E smoke test of the 7-stage lead-gen pipeline: verify, cleanup, qualify, personalize, upload, processing-state assertions."
24795
- },
24796
- "lgn-verification-diagnostic": {
24797
- title: "LGN Verification Diagnostic",
24798
- description: "Smoke test for Tomba email verification with soft-delete decision logic."
24799
- },
24800
- "lgn-tomba-diagnostic-workflow": {
24801
- title: "LGN Tomba Integration Diagnostic",
24802
- description: "E2E validation of Tomba integration: domain-search, email-finder, and email-verifier against a known domain."
24803
- },
24804
- "lgn-tomba-discovery-diagnostic-workflow": {
24805
- title: "LGN Tomba Discovery Diagnostic",
24806
- description: "E2E validation of Tomba discovery workflow + soft-delete logic on found contacts."
24807
- },
24808
- "lgn-amf-discovery-diagnostic-workflow": {
24809
- title: "LGN AnyMailFinder Discovery Diagnostic",
24810
- description: "E2E validation of AnyMailFinder waterfall: preserves qualification + Tomba state, verifies enrichmentData.anymailfinder shape."
24811
- },
24812
- "lgn-email-discovery-diagnostic-workflow": {
24813
- title: "LGN Email Discovery Diagnostic",
24814
- description: "E2E validation of unified email discovery (Tomba + AMF waterfall) on diagnostic batch with idempotency and phase-tracking assertions."
24815
- },
24816
- "lgn-email-discovery-boundary-diagnostic-workflow": {
24817
- title: "LGN Email Discovery Boundary Diagnostic",
24818
- description: "Regression net for Tomba \u2192 AnyMailFinder migration: verifies AMF only runs when Tomba finds no personal email."
24819
- },
24820
- "lgn-website-extract-diagnostic-workflow": {
24821
- title: "LGN Website Extract Diagnostic",
24822
- description: "Tests LLM extraction improvements: verifies staff names/titles extracted and enrichmentData.staff populated correctly."
24823
- },
24824
- "lgn-dtc-apollo-pipeline-diagnostic": {
24825
- title: "LGN DTC Apollo Pipeline Diagnostic",
24826
- description: "Demo-safe E2E test of the DTC Subscription Apollo pipeline: fixture normalization, scoring, decision-maker enrichment, qualified-lead export."
24827
- },
24828
- "anymailfinder-diagnostic-workflow": {
24829
- title: "AnyMailFinder Integration Diagnostic",
24830
- description: "Integration-credential diagnostic for AnyMailFinder API connectivity and lookup endpoint."
24831
- },
24832
- "instantly-diagnostic-workflow": {
24833
- title: "Instantly Integration Diagnostic",
24834
- description: "Integration-credential diagnostic for Instantly: campaigns list, account health, analytics, and dry-run upload."
24835
- },
24836
- "crm-send-reply-workflow": {
24837
- title: "CRM Send Reply",
24838
- description: "Send a manual reply to an interested prospect via Instantly or Resend and record the CRM activity."
24839
- },
24840
- "crm-reply-followup-workflow": {
24841
- title: "CRM Reply Follow-up",
24842
- description: "Send Day 3/5/7 scheduled follow-ups after a user-authored CRM reply in the interested stage."
24843
- },
24844
- "crm-send-booking-link-workflow": {
24845
- title: "CRM Send Booking Link",
24846
- description: "Send a Cal.com booking link to an interested prospect and advance the deal state."
24847
- },
24848
- "crm-send-nudge-workflow": {
24849
- title: "CRM Send Nudge",
24850
- description: "Send a scheduled nudge reminder to a prospect who has not yet booked after receiving a booking link."
24851
- },
24852
- "crm-rebook-workflow": {
24853
- title: "CRM Rebook",
24854
- description: "Re-send a booking link to a no-show or lapsed prospect and reset the deal state for a new booking attempt."
24855
- },
24856
- "move_to_proposal-workflow": {
24857
- title: "CRM Move to Proposal",
24858
- description: "Advance a qualified discovery deal to the proposal stage and trigger downstream proposal generation."
24859
- },
24860
- "move_to_closing-workflow": {
24861
- title: "CRM Move to Closing",
24862
- description: "Advance a proposal deal to the closing stage and record the stage transition activity."
24863
- },
24864
- "move_to_closed_won-workflow": {
24865
- title: "CRM Close Won",
24866
- description: "Mark a deal as closed-won, record the outcome, and trigger post-close onboarding steps."
24867
- },
24868
- "move_to_closed_lost-workflow": {
24869
- title: "CRM Close Lost",
24870
- description: "Mark a deal as closed-lost, record the reason, and archive the deal from the active pipeline."
24871
- },
24872
- "move_to_nurturing-workflow": {
24873
- title: "CRM Move to Nurturing",
24874
- description: "Move a stalled deal into the nurturing stage for long-term follow-up sequencing."
24875
- },
24876
- "mark_no_show-workflow": {
24877
- title: "CRM Mark No Show",
24878
- description: "Mark a booked deal as a no-show and transition it to the appropriate recovery state."
24879
- },
24880
- "inb-01-instantly-reply-handler-workflow": {
24881
- title: "INB-01 Instantly Reply Handler",
24882
- description: "Entry handler for inbound Instantly replies: classifies intent, routes to booking or follow-up branches."
24883
- },
24884
- "inb-01-send-booking-reply-workflow": {
24885
- title: "INB-01 Send Booking Reply",
24886
- description: "Send a booking-link reply to an interested Instantly lead and create or update the CRM deal."
24887
- },
24888
- "inb-01-send-subsequent-reply-workflow": {
24889
- title: "INB-01 Send Subsequent Reply",
24890
- description: "Send a follow-up reply for edge-case inbound threads that require a second outreach pass."
24891
- },
24892
- "inb-01-booking-nudge-workflow": {
24893
- title: "INB-01 Booking Nudge",
24894
- description: "Send a scheduled nudge to prospects who received a booking link but have not yet booked."
24895
- },
24896
- "inb-02-booking-handler-workflow": {
24897
- title: "INB-02 Cal Booking Handler",
24898
- description: "Handle an inbound Cal.com booking event: update deal stage, send confirmation, and schedule discovery reminder."
24899
- },
24900
- "cal-booking-revert-workflow": {
24901
- title: "INB-02 Cal Booking Revert",
24902
- description: "Revert a deal to the pre-booking state when a Cal.com booking is cancelled or rescheduled."
24903
- },
24904
- "inb-02-discovery-reminder-workflow": {
24905
- title: "INB-02 Discovery Reminder",
24906
- description: "Send a pre-discovery call reminder and attach any relevant context to the deal record."
24907
- },
24908
- "inb-02b-organic-booking-handler-workflow": {
24909
- title: "INB-02B Organic Booking Handler",
24910
- description: "Handle Cal.com bookings that originate outside the Instantly outreach funnel (website form, referral, etc.)."
24911
- },
24912
- "inb-03-discovery-form-handler-workflow": {
24913
- title: "INB-03 Discovery Form Handler",
24914
- description: "Process an inbound discovery form submission: enrich deal, score fit, and route to proposal or nurture."
24915
- },
24916
- "discovery-form-revert-workflow": {
24917
- title: "INB-03 Discovery Form Revert",
24918
- description: "Revert a deal to the pre-discovery state when a discovery form submission must be rolled back."
24919
- },
24920
- "inb-pipeline-timeout-checker-workflow": {
24921
- title: "INB Pipeline Timeout Checker",
24922
- description: "Scheduled checker that scans the active deal pipeline for stage timeouts and dispatches timeout-action workflows."
24923
- },
24924
- "inb-pipeline-timeout-followup-workflow": {
24925
- title: "INB Pipeline Timeout: Follow-up",
24926
- description: "Timeout action for deals stuck in the interested stage: send a follow-up nudge or escalate."
24927
- },
24928
- "inb-pipeline-timeout-nurture-workflow": {
24929
- title: "INB Pipeline Timeout: Nurture",
24930
- description: "Timeout action for deals that have gone cold: move to nurturing and queue long-term follow-up."
24931
- },
24932
- "inb-pipeline-timeout-close-lost-workflow": {
24933
- title: "INB Pipeline Timeout: Close Lost",
24934
- description: "Timeout action for deals that have exceeded the maximum pipeline age: auto-close as lost."
24935
- },
24936
- "inb-pipeline-timeout-no-show-workflow": {
24937
- title: "INB Pipeline Timeout: No Show",
24938
- description: "Timeout action for booked deals with no discovery form submitted: mark as no-show and trigger recovery."
24939
- },
24940
- "inb-full-cleanup-workflow": {
24941
- title: "INB Full Cleanup",
24942
- description: "Full pipeline cleanup: archive stale deals, prune orphaned activities, and reset diagnostic test data."
24943
- },
24944
- "inb-pipeline-unsubscribe-cleanup-workflow": {
24945
- title: "INB Unsubscribe Cleanup",
24946
- description: "Remove unsubscribed contacts from the active pipeline and mark their deals closed-lost."
24947
- },
24948
- "inb-integration-test": {
24949
- title: "INB Integration Test",
24950
- description: "End-to-end integration test for the inbound sales pipeline: reply handler through booking and discovery stages."
24951
- },
24952
- "crm-action-system-smoke-workflow": {
24953
- title: "CRM Action System Smoke Test",
24954
- description: "Smoke test for CRM action workflows: verifies each action can be invoked end-to-end against the dev pipeline."
24955
- },
24956
- "cutover-org-model-smoke-workflow": {
24957
- title: "Cutover Org Model Smoke Test",
24958
- description: "Post-cutover smoke test that validates OM resource descriptors, system paths, and ontology bindings are consistent."
24959
- },
24960
- "crm-timeout-checker-diagnostic-workflow": {
24961
- title: "CRM Timeout Checker Diagnostic",
24962
- description: "Diagnostic for the pipeline timeout checker: simulates stale deals and verifies correct timeout-action dispatch."
24963
- }
24964
- };
24965
- function titleFromResourceId(resourceId) {
24966
- return resourceId.replace(/-workflow$/, "").replace(/[-_]+/g, " ").replace(/\b\w/g, (character) => character.toUpperCase());
24967
- }
24968
- var platformWorkflowResources = platformWorkflowResourceSeeds.map(([id, systemPath2, buildActionKey], index) => {
24969
- const codeRefs = platformWorkflowCodeRefs[id];
24970
- const ontology = buildActionKey !== void 0 ? workflowOntologyBindingsByBuildActionKey[buildActionKey] : void 0;
24971
- const contract = workflowContractsByResourceId[id];
24972
- const ontologyWithContract = ontology !== void 0 || contract !== void 0 ? {
24973
- ...ontology ?? {},
24974
- ...contract ? { contract } : {}
24975
- } : void 0;
24976
- const displayMetadata = workflowDisplayMetadataByResourceId[id];
24977
- const title = displayMetadata?.title ?? titleFromResourceId(id);
24978
- return {
24979
- id,
24980
- order: (index + 1) * 10,
24981
- kind: "workflow",
24982
- systemPath: systemPath2,
24983
- title,
24984
- description: displayMetadata?.description ?? `Workflow resource for ${title}.`,
24985
- ownerRoleId: getPlatformOwnerRoleId(systemPath2),
24986
- status: "active",
24987
- ...codeRefs ? { codeRefs } : {},
24988
- ...ontologyWithContract ? { ontology: ontologyWithContract } : {}
24989
- };
24990
- });
24991
- var platformIntegrationResources = [
24992
- {
24993
- id: "inb-attio-integration",
24994
- order: 10,
24995
- kind: "integration",
24996
- systemPath: "sales.crm",
24997
- status: "active",
24998
- codeRefs: [
24999
- {
25000
- path: "packages/elevasis-operations/src/metadata.ts",
25001
- role: "config",
25002
- symbol: "integrations"
25003
- }
25004
- ],
25005
- provider: "attio"
25006
- },
25007
- {
25008
- id: "inb-instantly-integration",
25009
- order: 20,
25010
- kind: "integration",
25011
- systemPath: "sales.lead-gen",
25012
- status: "active",
25013
- codeRefs: [
25014
- {
25015
- path: "packages/elevasis-operations/src/metadata.ts",
25016
- role: "config",
25017
- symbol: "integrations"
25018
- }
25019
- ],
25020
- provider: "instantly"
25021
- },
25022
- {
25023
- id: "integration-resend-elevasis",
25024
- order: 30,
25025
- kind: "integration",
25026
- systemPath: "sales.crm",
25027
- status: "active",
25028
- codeRefs: [
25029
- {
25030
- path: "packages/elevasis-operations/src/metadata.ts",
25031
- role: "config",
25032
- symbol: "integrations"
25033
- }
25034
- ],
25035
- provider: "resend"
25036
- },
25037
- {
25038
- id: "integration-apify-elevasis",
25039
- order: 40,
25040
- kind: "integration",
25041
- systemPath: "sales.lead-gen",
25042
- status: "active",
25043
- codeRefs: [
25044
- {
25045
- path: "packages/elevasis-operations/src/metadata.ts",
25046
- role: "config",
25047
- symbol: "integrations"
25048
- }
25049
- ],
25050
- provider: "apify"
25051
- },
25052
- {
25053
- id: "integration-apollo-elevasis",
25054
- order: 50,
25055
- kind: "integration",
25056
- systemPath: "sales.lead-gen",
25057
- status: "active",
25058
- codeRefs: [
25059
- {
25060
- path: "packages/elevasis-operations/src/metadata.ts",
25061
- role: "config",
25062
- symbol: "integrations"
25063
- }
25064
- ],
25065
- provider: "apollo"
25066
- }
25067
- ];
25068
- var platformIntegrationResourcesWithOwners = platformIntegrationResources.map((resource2) => ({
25069
- ...resource2,
25070
- ownerRoleId: getPlatformOwnerRoleId(resource2.systemPath)
25071
- }));
25072
- var platformResourceDescriptors = defineResources(
25073
- Object.fromEntries(
25074
- [
25075
- ...platformWorkflowResources,
25076
- ...platformIntegrationResourcesWithOwners,
25077
- {
25078
- id: "command-center-assistant",
25079
- order: 1e4,
25080
- kind: "agent",
25081
- systemPath: "platform.projects",
25082
- ownerRoleId: "role.operator",
25083
- actsAsRoleId: "role.operator",
25084
- status: "active",
25085
- codeRefs: [
25086
- {
25087
- path: "apps/api/src/resources/command-center-assistant/definition.ts",
25088
- role: "entrypoint",
25089
- symbol: "commandCenterAssistantDefinition"
25090
- },
25091
- {
25092
- path: "apps/api/src/resources/index.ts",
25093
- role: "config",
25094
- symbol: "registerSystemResources"
25095
- }
25096
- ],
25097
- agentKind: "platform",
25098
- sessionCapable: true,
25099
- invocations: [
25100
- { kind: "slash-command", command: "/help" },
25101
- { kind: "slash-command", command: "/work" }
25102
- ]
25103
- }
25104
- ].map((resource2) => [resource2.id, resource2])
25105
- )
25106
- );
25107
- Object.values(platformResourceDescriptors);
25108
- Object.fromEntries(
25109
- Object.values(platformResourceDescriptors).flatMap(
25110
- (resource2) => resource2.ontology === void 0 ? [] : [[resource2.id, resource2.ontology]]
25111
- )
25112
- );
25113
-
25114
- // ../elevasis-core/src/organization-model/roles.ts
25115
- var platformRoles = {
25116
- "role.operator": {
25117
- id: "role.operator",
25118
- order: 10,
25119
- title: "Platform Operator",
25120
- responsibilities: [
25121
- "Own platform operations knowledge and keep operational playbooks aligned with active systems.",
25122
- "Maintain platform utilities, diagnostics, and resource governance health."
25123
- ],
25124
- responsibleFor: ["client-management", "sales", "platform.projects", "seo", "platform"]
24095
+ {
24096
+ id: "move_to_nurturing",
24097
+ order: 290,
24098
+ label: "Move to Nurturing",
24099
+ description: "Move a CRM deal into nurturing for future follow-up.",
24100
+ scope: { domain: "sales" },
24101
+ resourceId: "move_to_nurturing-workflow",
24102
+ affects: ["crm.deal"],
24103
+ invocations: [],
24104
+ lifecycle: "active",
24105
+ knowledge: []
24106
+ }
24107
+ ];
24108
+ var CRM_ACTION_ENTRIES = defineActions(CRM_ACTION_ENTRY_INPUTS);
24109
+ var ELEVASIS_DEFAULT_ORGANIZATION_MODEL_ACTIONS = {
24110
+ ...LEAD_GEN_ACTION_ENTRIES,
24111
+ ...CRM_ACTION_ENTRIES
24112
+ };
24113
+
24114
+ // ../elevasis-core/src/organization-model/roles.ts
24115
+ var platformRoles = {
24116
+ "role.operator": {
24117
+ id: "role.operator",
24118
+ order: 10,
24119
+ title: "Platform Operator",
24120
+ responsibilities: [
24121
+ "Own platform operations knowledge and keep operational playbooks aligned with active systems.",
24122
+ "Maintain platform utilities, diagnostics, and resource governance health."
24123
+ ],
24124
+ responsibleFor: ["client-management", "sales", "platform.projects", "seo", "platform"]
25125
24125
  },
25126
24126
  "role.growth-operator": {
25127
24127
  id: "role.growth-operator",
@@ -25158,273 +24158,6 @@ var platformRoles = {
25158
24158
  }
25159
24159
  };
25160
24160
 
25161
- // ../elevasis-core/src/organization-model/actions.ts
25162
- var LEAD_GEN_ACTION_ENTRY_INPUTS = [
25163
- {
25164
- id: "lead-gen.company.source",
25165
- order: 10,
25166
- label: "Source companies",
25167
- description: "Import source companies from a list provider.",
25168
- scope: { domain: "sales" },
25169
- resourceId: "lgn-import-workflow",
25170
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/source" }],
25171
- lifecycle: "active",
25172
- knowledge: []
25173
- },
25174
- {
25175
- id: "lead-gen.company.apollo-import",
25176
- order: 20,
25177
- label: "Import from Apollo",
25178
- description: "Pull companies and seed contact data from an Apollo search or list.",
25179
- scope: { domain: "sales" },
25180
- resourceId: "lgn-01c-apollo-import-workflow",
25181
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/apollo-import" }],
25182
- lifecycle: "active",
25183
- knowledge: []
25184
- },
25185
- {
25186
- id: "lead-gen.contact.discover",
25187
- order: 30,
25188
- label: "Discover contact emails",
25189
- description: "Find email addresses for contacts at qualified companies.",
25190
- scope: { domain: "sales" },
25191
- resourceId: "lgn-04-email-discovery-workflow",
25192
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/discover" }],
25193
- lifecycle: "active",
25194
- knowledge: []
25195
- },
25196
- {
25197
- id: "lead-gen.contact.verify-email",
25198
- order: 40,
25199
- label: "Verify emails",
25200
- description: "Check email deliverability before outreach.",
25201
- scope: { domain: "sales" },
25202
- resourceId: "lgn-05-email-verification-workflow",
25203
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/verify-email" }],
25204
- lifecycle: "active",
25205
- knowledge: []
25206
- },
25207
- {
25208
- id: "lead-gen.company.apify-crawl",
25209
- order: 50,
25210
- label: "Crawl websites",
25211
- description: "Crawl company websites via Apify and store raw page markdown for downstream LLM analysis.",
25212
- scope: { domain: "sales" },
25213
- resourceId: "lgn-02a-apify-website-crawl-workflow",
25214
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/apify-crawl" }],
25215
- lifecycle: "active",
25216
- knowledge: []
25217
- },
25218
- {
25219
- id: "lead-gen.company.website-extract",
25220
- order: 60,
25221
- label: "Extract website signals",
25222
- description: "Scrape and analyze company websites for qualification signals.",
25223
- scope: { domain: "sales" },
25224
- resourceId: "lgn-02-website-extract-workflow",
25225
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/website-extract" }],
25226
- lifecycle: "active",
25227
- knowledge: []
25228
- },
25229
- {
25230
- id: "lead-gen.company.qualify",
25231
- order: 70,
25232
- label: "Qualify companies",
25233
- description: "Score and filter companies against the ICP rubric.",
25234
- scope: { domain: "sales" },
25235
- resourceId: "lgn-03-company-qualification-workflow",
25236
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/qualify" }],
25237
- lifecycle: "active",
25238
- knowledge: []
25239
- },
25240
- {
25241
- id: "lead-gen.company.dtc-subscription-qualify",
25242
- order: 80,
25243
- label: "Qualify DTC subscription fit",
25244
- description: "Classify subscription potential and consumable-product fit for DTC brands.",
25245
- scope: { domain: "sales" },
25246
- resourceId: "lgn-03b-dtc-subscription-score-workflow",
25247
- invocations: [
25248
- { kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/dtc-subscription-qualify" }
25249
- ],
25250
- lifecycle: "active",
25251
- knowledge: []
25252
- },
25253
- {
25254
- id: "lead-gen.contact.apollo-decision-maker-enrich",
25255
- order: 90,
25256
- label: "Enrich decision-makers",
25257
- description: "Find and enrich qualified contacts at qualified companies via Apollo.",
25258
- scope: { domain: "sales" },
25259
- resourceId: "lgn-04b-apollo-decision-maker-enrich-workflow",
25260
- invocations: [
25261
- { kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/apollo-decision-maker-enrich" }
25262
- ],
25263
- lifecycle: "active",
25264
- knowledge: []
25265
- },
25266
- {
25267
- id: "lead-gen.contact.personalize",
25268
- order: 100,
25269
- label: "Personalize outreach",
25270
- description: "Generate personalized opening lines for each contact.",
25271
- scope: { domain: "sales" },
25272
- resourceId: "ist-personalization-workflow",
25273
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/contacts/personalize" }],
25274
- lifecycle: "active",
25275
- knowledge: []
25276
- },
25277
- {
25278
- id: "lead-gen.review.outreach-ready",
25279
- order: 110,
25280
- label: "Upload to outreach",
25281
- description: "Upload approved contacts to the outreach sequence after QC review.",
25282
- scope: { domain: "sales" },
25283
- resourceId: "ist-upload-contacts-workflow",
25284
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/review/outreach-ready" }],
25285
- lifecycle: "active",
25286
- knowledge: []
25287
- },
25288
- {
25289
- id: "lead-gen.export.list",
25290
- order: 120,
25291
- label: "Export lead list",
25292
- description: "Export approved leads as a downloadable lead list.",
25293
- scope: { domain: "sales" },
25294
- resourceId: "lgn-06-export-list-workflow",
25295
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/export/list" }],
25296
- lifecycle: "active",
25297
- knowledge: []
25298
- },
25299
- {
25300
- id: "lead-gen.company.cleanup",
25301
- order: 130,
25302
- label: "Clean up companies",
25303
- description: "Remove disqualified or duplicate companies from the list.",
25304
- scope: { domain: "sales" },
25305
- resourceId: "lgn-company-cleanup-workflow",
25306
- invocations: [{ kind: "api-endpoint", method: "POST", path: "/api/prospecting/companies/cleanup" }],
25307
- lifecycle: "active",
25308
- knowledge: []
25309
- }
25310
- ];
25311
- var LEAD_GEN_ACTION_ENTRIES = defineActions(LEAD_GEN_ACTION_ENTRY_INPUTS);
25312
- var CRM_ACTION_ENTRY_INPUTS = [
25313
- {
25314
- id: "send_reply",
25315
- order: 210,
25316
- label: "Send Reply",
25317
- description: "Send a contextual reply for an active CRM deal.",
25318
- scope: { domain: "sales" },
25319
- resourceId: "crm-send-reply-workflow",
25320
- affects: ["crm.deal"],
25321
- invocations: [],
25322
- lifecycle: "active",
25323
- knowledge: []
25324
- },
25325
- {
25326
- id: "send_link",
25327
- order: 220,
25328
- label: "Send Booking Link",
25329
- description: "Send a booking link to move a deal toward a scheduled call.",
25330
- scope: { domain: "sales" },
25331
- resourceId: "crm-send-booking-link-workflow",
25332
- affects: ["crm.deal"],
25333
- invocations: [],
25334
- lifecycle: "active",
25335
- knowledge: []
25336
- },
25337
- {
25338
- id: "send_nudge",
25339
- order: 230,
25340
- label: "Send Nudge",
25341
- description: "Send a follow-up nudge for a stalled CRM deal.",
25342
- scope: { domain: "sales" },
25343
- resourceId: "crm-send-nudge-workflow",
25344
- affects: ["crm.deal"],
25345
- invocations: [],
25346
- lifecycle: "active",
25347
- knowledge: []
25348
- },
25349
- {
25350
- id: "rebook",
25351
- order: 240,
25352
- label: "Rebook",
25353
- description: "Rebook a missed or rescheduled CRM appointment.",
25354
- scope: { domain: "sales" },
25355
- resourceId: "crm-rebook-workflow",
25356
- affects: ["crm.deal"],
25357
- invocations: [],
25358
- lifecycle: "active",
25359
- knowledge: []
25360
- },
25361
- {
25362
- id: "move_to_proposal",
25363
- order: 250,
25364
- label: "Move to Proposal",
25365
- description: "Advance a qualified CRM deal into the proposal stage.",
25366
- scope: { domain: "sales" },
25367
- resourceId: "move_to_proposal-workflow",
25368
- affects: ["crm.deal"],
25369
- invocations: [],
25370
- lifecycle: "active",
25371
- knowledge: []
25372
- },
25373
- {
25374
- id: "move_to_closing",
25375
- order: 260,
25376
- label: "Move to Closing",
25377
- description: "Advance a proposal-stage CRM deal into closing.",
25378
- scope: { domain: "sales" },
25379
- resourceId: "move_to_closing-workflow",
25380
- affects: ["crm.deal"],
25381
- invocations: [],
25382
- lifecycle: "active",
25383
- knowledge: []
25384
- },
25385
- {
25386
- id: "move_to_closed_won",
25387
- order: 270,
25388
- label: "Close Won",
25389
- description: "Mark a CRM deal as closed won.",
25390
- scope: { domain: "sales" },
25391
- resourceId: "move_to_closed_won-workflow",
25392
- affects: ["crm.deal"],
25393
- invocations: [],
25394
- lifecycle: "active",
25395
- knowledge: []
25396
- },
25397
- {
25398
- id: "move_to_closed_lost",
25399
- order: 280,
25400
- label: "Close Lost",
25401
- description: "Mark a CRM deal as closed lost.",
25402
- scope: { domain: "sales" },
25403
- resourceId: "move_to_closed_lost-workflow",
25404
- affects: ["crm.deal"],
25405
- invocations: [],
25406
- lifecycle: "active",
25407
- knowledge: []
25408
- },
25409
- {
25410
- id: "move_to_nurturing",
25411
- order: 290,
25412
- label: "Move to Nurturing",
25413
- description: "Move a CRM deal into nurturing for future follow-up.",
25414
- scope: { domain: "sales" },
25415
- resourceId: "move_to_nurturing-workflow",
25416
- affects: ["crm.deal"],
25417
- invocations: [],
25418
- lifecycle: "active",
25419
- knowledge: []
25420
- }
25421
- ];
25422
- var CRM_ACTION_ENTRIES = defineActions(CRM_ACTION_ENTRY_INPUTS);
25423
- var ELEVASIS_DEFAULT_ORGANIZATION_MODEL_ACTIONS = {
25424
- ...LEAD_GEN_ACTION_ENTRIES,
25425
- ...CRM_ACTION_ENTRIES
25426
- };
25427
-
25428
24161
  // ../elevasis-core/src/organization-model/systems.ts
25429
24162
  var platformSystems = {
25430
24163
  platform: {
@@ -25433,6 +24166,7 @@ var platformSystems = {
25433
24166
  label: "Platform",
25434
24167
  description: "Cross-cutting platform infrastructure, diagnostics, and foundational utilities.",
25435
24168
  kind: "platform",
24169
+ responsibleRoleId: "role.operator",
25436
24170
  governedByKnowledge: [],
25437
24171
  drivesGoals: [],
25438
24172
  lifecycle: "active",
@@ -25457,6 +24191,7 @@ var platformSystems = {
25457
24191
  description: "User-submitted feature requests and bug reports.",
25458
24192
  kind: "operational",
25459
24193
  parentSystemId: "platform",
24194
+ responsibleRoleId: "role.operator",
25460
24195
  governedByKnowledge: [],
25461
24196
  drivesGoals: [],
25462
24197
  lifecycle: "active",
@@ -25472,6 +24207,7 @@ var platformSystems = {
25472
24207
  label: "Projects",
25473
24208
  description: "Projects, milestones, and work execution.",
25474
24209
  kind: "operational",
24210
+ responsibleRoleId: "role.operator",
25475
24211
  governedByKnowledge: [],
25476
24212
  drivesGoals: [],
25477
24213
  lifecycle: "beta",
@@ -25591,6 +24327,7 @@ var platformSystems = {
25591
24327
  label: "Client Management",
25592
24328
  description: "Operational client relationships, accounts, support intake, and business context.",
25593
24329
  kind: "operational",
24330
+ responsibleRoleId: "role.client-support-operator",
25594
24331
  governedByKnowledge: [],
25595
24332
  drivesGoals: [],
25596
24333
  lifecycle: "active",
@@ -25660,6 +24397,7 @@ var platformSystems = {
25660
24397
  label: "Sales",
25661
24398
  description: "Revenue workflows and customer acquisition.",
25662
24399
  kind: "operational",
24400
+ responsibleRoleId: "role.operator",
25663
24401
  governedByKnowledge: [],
25664
24402
  drivesGoals: [],
25665
24403
  lifecycle: "active",
@@ -25676,6 +24414,7 @@ var platformSystems = {
25676
24414
  description: "Prospecting, qualification, and outreach preparation.",
25677
24415
  kind: "operational",
25678
24416
  parentSystemId: "sales",
24417
+ responsibleRoleId: "role.growth-operator",
25679
24418
  governedByKnowledge: [],
25680
24419
  drivesGoals: [],
25681
24420
  lifecycle: "active",
@@ -26268,6 +25007,7 @@ var platformSystems = {
26268
25007
  description: "Relationship pipeline and deal management.",
26269
25008
  kind: "operational",
26270
25009
  parentSystemId: "sales",
25010
+ responsibleRoleId: "role.crm-operator",
26271
25011
  governedByKnowledge: [],
26272
25012
  drivesGoals: [],
26273
25013
  lifecycle: "active",
@@ -26470,22 +25210,1575 @@ var platformSystems = {
26470
25210
  }
26471
25211
  }
26472
25212
  },
26473
- seo: {
26474
- id: "seo",
26475
- order: 100,
26476
- label: "SEO",
26477
- description: "Search, content, and distribution workflows.",
26478
- kind: "operational",
26479
- governedByKnowledge: [],
26480
- drivesGoals: [],
26481
- lifecycle: "beta",
26482
- ui: {
26483
- path: "/seo",
26484
- surfaces: [],
26485
- icon: "search"
25213
+ seo: {
25214
+ id: "seo",
25215
+ order: 100,
25216
+ label: "SEO",
25217
+ description: "Search, content, and distribution workflows.",
25218
+ kind: "operational",
25219
+ responsibleRoleId: "role.website-operator",
25220
+ governedByKnowledge: [],
25221
+ drivesGoals: [],
25222
+ lifecycle: "beta",
25223
+ ui: {
25224
+ path: "/acquisition/seo",
25225
+ surfaces: [],
25226
+ icon: "search"
25227
+ }
25228
+ }
25229
+ };
25230
+
25231
+ // ../elevasis-core/src/organization-model/resource-routing.ts
25232
+ function systemOwnershipEntries(systems) {
25233
+ return Object.fromEntries(
25234
+ Object.entries(systems).map(([key, system]) => {
25235
+ const { apiInterface, systems: childSystems, subsystems, ...ownershipSystem } = system;
25236
+ return [
25237
+ key,
25238
+ {
25239
+ ...ownershipSystem,
25240
+ ...childSystems ? { systems: systemOwnershipEntries(childSystems) } : {},
25241
+ ...subsystems ? { subsystems: systemOwnershipEntries(subsystems) } : {}
25242
+ }
25243
+ ];
25244
+ })
25245
+ );
25246
+ }
25247
+ var platformSystemOwnershipModel = resolveOrganizationModel(
25248
+ {
25249
+ version: 1,
25250
+ roles: platformRoles,
25251
+ actions: ELEVASIS_DEFAULT_ORGANIZATION_MODEL_ACTIONS,
25252
+ entities: ELEVASIS_ORGANIZATION_MODEL_ENTITIES,
25253
+ systems: systemOwnershipEntries(platformSystems)
25254
+ },
25255
+ { mergeDefaults: false }
25256
+ );
25257
+ function getPlatformOwnerRoleId(systemId) {
25258
+ return getSystem(platformSystemOwnershipModel, systemId)?.responsibleRoleId ?? "role.operator";
25259
+ }
25260
+
25261
+ // ../elevasis-core/src/organization-model/resources.ts
25262
+ var leadGenCompany = "sales.lead-gen:object/company";
25263
+ var leadGenContact = "sales.lead-gen:object/contact";
25264
+ var leadGenList = "sales.lead-gen:object/list";
25265
+ var leadGenCampaign = "sales.lead-gen:object/campaign";
25266
+ var leadGenCompanyStage = "sales.lead-gen:catalog/company-stage";
25267
+ var leadGenContactStage = "sales.lead-gen:catalog/contact-stage";
25268
+ var leadGenBuildTemplate = "sales.lead-gen:catalog/build-template";
25269
+ var leadGenLocalServicesTemplateStep = "sales.lead-gen:catalog/template-step.local-services";
25270
+ var leadGenDtcSubscriptionTemplateStep = "sales.lead-gen:catalog/template-step.dtc-subscription";
25271
+ var leadGenCampaignStatus = "sales.lead-gen:catalog/campaign-status";
25272
+ var crmDeal = "sales.crm:object/deal";
25273
+ var crmContact = "sales.crm:object/contact";
25274
+ var crmPipeline = "sales.crm:catalog/crm.pipeline";
25275
+ var clientSupportIssue = "client-management:object/support-issue";
25276
+ var clientSupportIssueSeverity = "client-management:catalog/support-issue-severity";
25277
+ var crmActionWorkflowSchemaCodeRef = {
25278
+ path: "packages/elevasis-operations/src/sales/crm/shared/action-workflow-schemas.ts",
25279
+ role: "schema",
25280
+ symbol: "ActionWorkflowInputSchema"
25281
+ };
25282
+ var platformWorkflowResourceDefinitions = {
25283
+ "resend-diagnostic": {
25284
+ systemPath: "platform"
25285
+ },
25286
+ "instantly-diagnostic": {
25287
+ systemPath: "sales.lead-gen"
25288
+ },
25289
+ "stripe-diagnostic": {
25290
+ systemPath: "platform"
25291
+ },
25292
+ "dropbox-diagnostic": {
25293
+ systemPath: "platform"
25294
+ },
25295
+ "signature-api-diagnostic": {
25296
+ systemPath: "platform"
25297
+ },
25298
+ "apify-diagnostic": {
25299
+ systemPath: "sales.lead-gen"
25300
+ },
25301
+ "full-diagnostic": {
25302
+ systemPath: "platform",
25303
+ contract: {
25304
+ input: "@repo/elevasis-core/contracts/full-diagnostic#inputSchema"
25305
+ }
25306
+ },
25307
+ "diagnostic-test-data": {
25308
+ systemPath: "platform"
25309
+ },
25310
+ "cutover-org-model-smoke-workflow": {
25311
+ systemPath: "platform",
25312
+ codeRefs: [
25313
+ {
25314
+ path: "packages/elevasis-operations/src/diagnostics/cutover/org-model-smoke.ts",
25315
+ role: "entrypoint",
25316
+ symbol: "orgModelSmokeWorkflow"
25317
+ }
25318
+ ],
25319
+ displayMetadata: {
25320
+ title: "Cutover Org Model Smoke Test",
25321
+ description: "Post-cutover smoke test that validates OM resource descriptors, system paths, and ontology bindings are consistent."
25322
+ }
25323
+ },
25324
+ "crm-action-system-smoke-workflow": {
25325
+ systemPath: "sales.crm",
25326
+ codeRefs: [
25327
+ {
25328
+ path: "packages/elevasis-operations/src/diagnostics/cutover/crm-action-system-smoke.ts",
25329
+ role: "entrypoint",
25330
+ symbol: "crmActionSystemSmokeWorkflow"
25331
+ }
25332
+ ],
25333
+ displayMetadata: {
25334
+ title: "CRM Action System Smoke Test",
25335
+ description: "Smoke test for CRM action workflows: verifies each action can be invoked end-to-end against the dev pipeline."
25336
+ }
25337
+ },
25338
+ "anymailfinder-diagnostic-workflow": {
25339
+ systemPath: "sales.lead-gen",
25340
+ codeRefs: [
25341
+ {
25342
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/anymailfinder-diagnostic.ts",
25343
+ role: "entrypoint",
25344
+ symbol: "anymailfinderDiagnosticWorkflow"
25345
+ }
25346
+ ],
25347
+ displayMetadata: {
25348
+ title: "AnyMailFinder Integration Diagnostic",
25349
+ description: "Integration-credential diagnostic for AnyMailFinder API connectivity and lookup endpoint."
25350
+ }
25351
+ },
25352
+ "lgn-dtc-apollo-pipeline-diagnostic": {
25353
+ systemPath: "sales.lead-gen",
25354
+ codeRefs: [
25355
+ {
25356
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/dtc-subscription-apollo-pipeline-diagnostic.ts",
25357
+ role: "entrypoint",
25358
+ symbol: "dtcSubscriptionApolloPipelineDiagnosticWorkflow"
25359
+ },
25360
+ {
25361
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/dtc-subscription-apollo-pipeline-diagnostic.test.ts",
25362
+ role: "test"
25363
+ }
25364
+ ],
25365
+ displayMetadata: {
25366
+ title: "LGN DTC Apollo Pipeline Diagnostic",
25367
+ description: "Demo-safe E2E test of the DTC Subscription Apollo pipeline: fixture normalization, scoring, decision-maker enrichment, qualified-lead export."
25368
+ }
25369
+ },
25370
+ "lgn-email-discovery-boundary-diagnostic-workflow": {
25371
+ systemPath: "sales.lead-gen",
25372
+ codeRefs: [
25373
+ {
25374
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/email-discovery-boundary-diagnostic.ts",
25375
+ role: "entrypoint",
25376
+ symbol: "emailDiscoveryBoundaryDiagnosticWorkflow"
25377
+ }
25378
+ ],
25379
+ displayMetadata: {
25380
+ title: "LGN Email Discovery Boundary Diagnostic",
25381
+ description: "Regression net for Tomba \u2192 AnyMailFinder migration: verifies AMF only runs when Tomba finds no personal email."
25382
+ }
25383
+ },
25384
+ "lgn-data-integrity-diagnostic": {
25385
+ systemPath: "sales.lead-gen",
25386
+ codeRefs: [
25387
+ {
25388
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/data-integrity-diagnostic.ts",
25389
+ role: "entrypoint",
25390
+ symbol: "dataIntegrityDiagnosticWorkflow"
25391
+ }
25392
+ ],
25393
+ displayMetadata: {
25394
+ title: "LGN Data Integrity Diagnostic",
25395
+ description: "Validates enrichmentData JSONB shape and domain dedup constraints across lead-gen companies."
25396
+ }
25397
+ },
25398
+ "lgn-email-discovery-diagnostic-workflow": {
25399
+ systemPath: "sales.lead-gen",
25400
+ codeRefs: [
25401
+ {
25402
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/email-discovery-diagnostic.ts",
25403
+ role: "entrypoint",
25404
+ symbol: "emailDiscoveryDiagnosticWorkflow"
25405
+ }
25406
+ ],
25407
+ displayMetadata: {
25408
+ title: "LGN Email Discovery Diagnostic",
25409
+ description: "E2E validation of unified email discovery (Tomba + AMF waterfall) on diagnostic batch with idempotency and phase-tracking assertions."
25410
+ }
25411
+ },
25412
+ "instantly-diagnostic-workflow": {
25413
+ systemPath: "sales.lead-gen",
25414
+ codeRefs: [
25415
+ {
25416
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/instantly-diagnostic.ts",
25417
+ role: "entrypoint",
25418
+ symbol: "instantlyDiagnosticWorkflow"
25419
+ }
25420
+ ],
25421
+ displayMetadata: {
25422
+ title: "Instantly Integration Diagnostic",
25423
+ description: "Integration-credential diagnostic for Instantly: campaigns list, account health, analytics, and dry-run upload."
25424
+ }
25425
+ },
25426
+ "lgn-diagnostic-orchestrator": {
25427
+ systemPath: "sales.lead-gen",
25428
+ codeRefs: [
25429
+ {
25430
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/lds-diagnostic-orchestrator.ts",
25431
+ role: "entrypoint",
25432
+ symbol: "ldsDiagnosticOrchestratorWorkflow"
25433
+ }
25434
+ ],
25435
+ displayMetadata: {
25436
+ title: "LGN Diagnostic Orchestrator",
25437
+ description: "Meta-workflow that resets diagnostic data and runs internal + external lead-gen diagnostics sequentially with pass/fail summary."
25438
+ }
25439
+ },
25440
+ "lgn-lead-filter-diagnostic": {
25441
+ systemPath: "sales.lead-gen",
25442
+ codeRefs: [
25443
+ {
25444
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/lead-filter-diagnostic.ts",
25445
+ role: "entrypoint",
25446
+ symbol: "leadFilterDiagnosticWorkflow"
25447
+ }
25448
+ ],
25449
+ displayMetadata: {
25450
+ title: "LGN Lead Filter Diagnostic",
25451
+ description: "Regression test for tool-dispatcher filters: verifies listCompanies/listContacts honor batchId, segment, and qualification filters."
25452
+ }
25453
+ },
25454
+ "lgn-pipeline-diagnostic": {
25455
+ systemPath: "sales.lead-gen",
25456
+ codeRefs: [
25457
+ {
25458
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/pipeline-diagnostic.ts",
25459
+ role: "entrypoint",
25460
+ symbol: "pipelineDiagnosticWorkflow"
25461
+ }
25462
+ ],
25463
+ displayMetadata: {
25464
+ title: "LGN Pipeline E2E Diagnostic",
25465
+ description: "Full E2E smoke test of the 7-stage lead-gen pipeline: verify, cleanup, qualify, personalize, upload, processing-state assertions."
25466
+ }
25467
+ },
25468
+ "lgn-qualification-diagnostic": {
25469
+ systemPath: "sales.lead-gen",
25470
+ codeRefs: [
25471
+ {
25472
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/qualification-diagnostic.ts",
25473
+ role: "entrypoint",
25474
+ symbol: "qualificationDiagnosticWorkflow"
25475
+ }
25476
+ ],
25477
+ displayMetadata: {
25478
+ title: "LGN Qualification Diagnostic",
25479
+ description: "Isolated LLM qualification smoke test: creates a test contact, runs LLM qualification, verifies DB write, cleans up."
25480
+ }
25481
+ },
25482
+ "lgn-scrape-diagnostic": {
25483
+ systemPath: "sales.lead-gen",
25484
+ codeRefs: [
25485
+ {
25486
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/scrape-diagnostic.ts",
25487
+ role: "entrypoint",
25488
+ symbol: "scrapeDiagnosticWorkflow"
25489
+ }
25490
+ ],
25491
+ displayMetadata: {
25492
+ title: "LGN Scrape Diagnostic",
25493
+ description: "Validates Google Maps scraper pipeline by scraping a single business via Apify and verifying company record creation."
25494
+ }
25495
+ },
25496
+ "lgn-tomba-diagnostic-workflow": {
25497
+ systemPath: "sales.lead-gen",
25498
+ codeRefs: [
25499
+ {
25500
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/tomba-diagnostic.ts",
25501
+ role: "entrypoint",
25502
+ symbol: "tombaDiagnosticWorkflow"
25503
+ }
25504
+ ],
25505
+ displayMetadata: {
25506
+ title: "LGN Tomba Integration Diagnostic",
25507
+ description: "E2E validation of Tomba integration: domain-search, email-finder, and email-verifier against a known domain."
25508
+ }
25509
+ },
25510
+ "lgn-verification-diagnostic": {
25511
+ systemPath: "sales.lead-gen",
25512
+ codeRefs: [
25513
+ {
25514
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/verification-diagnostic.ts",
25515
+ role: "entrypoint",
25516
+ symbol: "verificationDiagnosticWorkflow"
25517
+ },
25518
+ {
25519
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/verification-diagnostic.test.ts",
25520
+ role: "test"
25521
+ }
25522
+ ],
25523
+ displayMetadata: {
25524
+ title: "LGN Verification Diagnostic",
25525
+ description: "Smoke test for Tomba email verification with soft-delete decision logic."
25526
+ }
25527
+ },
25528
+ "lgn-website-extract-diagnostic-workflow": {
25529
+ systemPath: "sales.lead-gen",
25530
+ codeRefs: [
25531
+ {
25532
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/website-extract-diagnostic.ts",
25533
+ role: "entrypoint",
25534
+ symbol: "websiteExtractDiagnosticWorkflow"
25535
+ }
25536
+ ],
25537
+ displayMetadata: {
25538
+ title: "LGN Website Extract Diagnostic",
25539
+ description: "Tests LLM extraction improvements: verifies staff names/titles extracted and enrichmentData.staff populated correctly."
25540
+ }
25541
+ },
25542
+ "lgn-amf-discovery-diagnostic-workflow": {
25543
+ systemPath: "sales.lead-gen",
25544
+ codeRefs: [
25545
+ {
25546
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/amf-discovery-diagnostic.ts",
25547
+ role: "entrypoint",
25548
+ symbol: "amfDiscoveryDiagnosticWorkflow"
25549
+ }
25550
+ ],
25551
+ displayMetadata: {
25552
+ title: "LGN AnyMailFinder Discovery Diagnostic",
25553
+ description: "E2E validation of AnyMailFinder waterfall: preserves qualification + Tomba state, verifies enrichmentData.anymailfinder shape."
25554
+ }
25555
+ },
25556
+ "lgn-tomba-discovery-diagnostic-workflow": {
25557
+ systemPath: "sales.lead-gen",
25558
+ codeRefs: [
25559
+ {
25560
+ path: "packages/elevasis-operations/src/diagnostics/lead-gen/tomba-discovery-diagnostic.ts",
25561
+ role: "entrypoint",
25562
+ symbol: "tombaDiscoveryDiagnosticWorkflow"
25563
+ }
25564
+ ],
25565
+ displayMetadata: {
25566
+ title: "LGN Tomba Discovery Diagnostic",
25567
+ description: "E2E validation of Tomba discovery workflow + soft-delete logic on found contacts."
25568
+ }
25569
+ },
25570
+ "resend-unsubscribe-diagnostic-workflow": {
25571
+ systemPath: "platform"
25572
+ },
25573
+ "instantly-thread-diagnostic-workflow": {
25574
+ systemPath: "sales.lead-gen"
25575
+ },
25576
+ "instantly-thread-link-backfill-workflow": {
25577
+ systemPath: "sales.lead-gen"
25578
+ },
25579
+ "instantly-reply-cleanup-workflow": {
25580
+ systemPath: "sales.lead-gen"
25581
+ },
25582
+ "inb-integration-test": {
25583
+ systemPath: "sales.crm",
25584
+ contract: {
25585
+ input: "@repo/elevasis-core/contracts/integration-test#inputSchema"
25586
+ },
25587
+ codeRefs: [
25588
+ {
25589
+ path: "packages/elevasis-operations/src/diagnostics/inbound/integration-test.ts",
25590
+ role: "entrypoint",
25591
+ symbol: "acqIntegrationTestWorkflow"
25592
+ },
25593
+ {
25594
+ path: "packages/elevasis-operations/src/diagnostics/inbound/integration-test-schema.ts",
25595
+ role: "schema"
25596
+ }
25597
+ ],
25598
+ displayMetadata: {
25599
+ title: "INB Integration Test",
25600
+ description: "End-to-end integration test for the inbound sales pipeline: reply handler through booking and discovery stages."
25601
+ }
25602
+ },
25603
+ "organic-booking-diagnostic-workflow": {
25604
+ systemPath: "sales.crm"
25605
+ },
25606
+ "organic-booking-cleanup-workflow": {
25607
+ systemPath: "sales.crm"
25608
+ },
25609
+ "crm-timeout-checker-diagnostic-workflow": {
25610
+ systemPath: "sales.crm",
25611
+ codeRefs: [
25612
+ {
25613
+ path: "packages/elevasis-operations/src/diagnostics/inbound/timeout-checker-diagnostic.ts",
25614
+ role: "entrypoint",
25615
+ symbol: "crmTimeoutCheckerDiagnosticWorkflow"
25616
+ }
25617
+ ],
25618
+ displayMetadata: {
25619
+ title: "CRM Timeout Checker Diagnostic",
25620
+ description: "Diagnostic for the pipeline timeout checker: simulates stale deals and verifies correct timeout-action dispatch."
25621
+ }
25622
+ },
25623
+ "ist-toolkit-diagnostic-workflow": {
25624
+ systemPath: "sales.lead-gen"
25625
+ },
25626
+ "ist-toolkit-diagnostic-orchestrator": {
25627
+ systemPath: "sales.lead-gen"
25628
+ },
25629
+ "ist-cross-batch-prompting-diagnostic-workflow": {
25630
+ systemPath: "sales.lead-gen"
25631
+ },
25632
+ "llm-diagnostic": {
25633
+ systemPath: "platform"
25634
+ },
25635
+ "execution-diagnostic": {
25636
+ systemPath: "platform"
25637
+ },
25638
+ "scheduler-diagnostic": {
25639
+ systemPath: "platform"
25640
+ },
25641
+ "storage-diagnostic": {
25642
+ systemPath: "platform"
25643
+ },
25644
+ "lead-diagnostic": {
25645
+ systemPath: "platform"
25646
+ },
25647
+ "email-diagnostic": {
25648
+ systemPath: "platform"
25649
+ },
25650
+ "approval-diagnostic": {
25651
+ systemPath: "platform"
25652
+ },
25653
+ "pdf-diagnostic": {
25654
+ systemPath: "platform"
25655
+ },
25656
+ "notification-diagnostic": {
25657
+ systemPath: "platform"
25658
+ },
25659
+ "notification-sequence-diagnostic": {
25660
+ systemPath: "platform"
25661
+ },
25662
+ echo: {
25663
+ systemPath: "platform",
25664
+ codeRefs: [
25665
+ {
25666
+ path: "packages/elevasis-operations/src/diagnostics/platform/echo-workflow.ts",
25667
+ role: "entrypoint",
25668
+ symbol: "echoWorkflow"
25669
+ }
25670
+ ]
25671
+ },
25672
+ "migration-smoke": {
25673
+ systemPath: "platform"
25674
+ },
25675
+ "inb-01-instantly-reply-handler-workflow": {
25676
+ systemPath: "sales.crm",
25677
+ codeRefs: [
25678
+ {
25679
+ path: "packages/elevasis-operations/src/sales/outreach/reply/instantly-reply-handler.ts",
25680
+ role: "entrypoint",
25681
+ symbol: "instantlyReplyHandlerWorkflow"
25682
+ }
25683
+ ],
25684
+ displayMetadata: {
25685
+ title: "INB-01 Instantly Reply Handler",
25686
+ description: "Entry handler for inbound Instantly replies: classifies intent, routes to booking or follow-up branches."
25687
+ }
25688
+ },
25689
+ "inb-01-booking-nudge-workflow": {
25690
+ systemPath: "sales.crm",
25691
+ contract: {
25692
+ input: "@repo/elevasis-core/contracts/booking-nudge#inputSchema"
25693
+ },
25694
+ codeRefs: [
25695
+ {
25696
+ path: "packages/elevasis-operations/src/sales/outreach/reply/booking-nudge.ts",
25697
+ role: "entrypoint",
25698
+ symbol: "bookingNudgeWorkflow"
25699
+ },
25700
+ {
25701
+ path: "packages/elevasis-operations/src/sales/outreach/reply/booking-nudge-schema.ts",
25702
+ role: "schema"
25703
+ }
25704
+ ],
25705
+ displayMetadata: {
25706
+ title: "INB-01 Booking Nudge",
25707
+ description: "Send a scheduled nudge to prospects who received a booking link but have not yet booked."
25708
+ }
25709
+ },
25710
+ "inb-01-send-booking-reply-workflow": {
25711
+ systemPath: "sales.crm",
25712
+ codeRefs: [
25713
+ {
25714
+ path: "packages/elevasis-operations/src/sales/outreach/reply/send-booking-reply.ts",
25715
+ role: "entrypoint",
25716
+ symbol: "sendBookingReplyWorkflow"
25717
+ }
25718
+ ],
25719
+ displayMetadata: {
25720
+ title: "INB-01 Send Booking Reply",
25721
+ description: "Send a booking-link reply to an interested Instantly lead and create or update the CRM deal."
25722
+ }
25723
+ },
25724
+ "inb-01-send-subsequent-reply-workflow": {
25725
+ systemPath: "sales.crm",
25726
+ codeRefs: [
25727
+ {
25728
+ path: "packages/elevasis-operations/src/sales/outreach/reply/send-subsequent-reply.ts",
25729
+ role: "entrypoint",
25730
+ symbol: "sendSubsequentReplyWorkflow"
25731
+ }
25732
+ ],
25733
+ displayMetadata: {
25734
+ title: "INB-01 Send Subsequent Reply",
25735
+ description: "Send a follow-up reply for edge-case inbound threads that require a second outreach pass."
25736
+ }
25737
+ },
25738
+ "inb-02-discovery-reminder-workflow": {
25739
+ systemPath: "sales.crm",
25740
+ codeRefs: [
25741
+ {
25742
+ path: "packages/elevasis-operations/src/sales/crm/booking/discovery-reminder.ts",
25743
+ role: "entrypoint",
25744
+ symbol: "discoveryReminderWorkflow"
25745
+ }
25746
+ ],
25747
+ displayMetadata: {
25748
+ title: "INB-02 Discovery Reminder",
25749
+ description: "Send a pre-discovery call reminder and attach any relevant context to the deal record."
25750
+ }
25751
+ },
25752
+ "cal-booking-revert-workflow": {
25753
+ systemPath: "sales.crm",
25754
+ codeRefs: [
25755
+ {
25756
+ path: "packages/elevasis-operations/src/sales/crm/booking/booking-revert.ts",
25757
+ role: "entrypoint",
25758
+ symbol: "bookingRevertWorkflow"
25759
+ }
25760
+ ],
25761
+ displayMetadata: {
25762
+ title: "INB-02 Cal Booking Revert",
25763
+ description: "Revert a deal to the pre-booking state when a Cal.com booking is cancelled or rescheduled."
25764
+ }
25765
+ },
25766
+ "inb-02-booking-handler-workflow": {
25767
+ systemPath: "sales.crm",
25768
+ codeRefs: [
25769
+ {
25770
+ path: "packages/elevasis-operations/src/sales/crm/booking/booking-handler.ts",
25771
+ role: "entrypoint",
25772
+ symbol: "bookingHandlerWorkflow"
25773
+ }
25774
+ ],
25775
+ displayMetadata: {
25776
+ title: "INB-02 Cal Booking Handler",
25777
+ description: "Handle an inbound Cal.com booking event: update deal stage, send confirmation, and schedule discovery reminder."
25778
+ }
25779
+ },
25780
+ "inb-02b-organic-booking-handler-workflow": {
25781
+ systemPath: "sales.crm",
25782
+ codeRefs: [
25783
+ {
25784
+ path: "packages/elevasis-operations/src/sales/crm/booking/organic-booking-handler.ts",
25785
+ role: "entrypoint",
25786
+ symbol: "organicBookingHandlerWorkflow"
25787
+ }
25788
+ ],
25789
+ displayMetadata: {
25790
+ title: "INB-02B Organic Booking Handler",
25791
+ description: "Handle Cal.com bookings that originate outside the Instantly outreach funnel (website form, referral, etc.)."
25792
+ }
25793
+ },
25794
+ "inb-03-discovery-form-handler-workflow": {
25795
+ systemPath: "sales.crm",
25796
+ codeRefs: [
25797
+ {
25798
+ path: "packages/elevasis-operations/src/sales/qualification/discovery/discovery-form-handler.ts",
25799
+ role: "entrypoint",
25800
+ symbol: "discoveryFormHandlerWorkflow"
25801
+ }
25802
+ ],
25803
+ displayMetadata: {
25804
+ title: "INB-03 Discovery Form Handler",
25805
+ description: "Process an inbound discovery form submission: enrich deal, score fit, and route to proposal or nurture."
25806
+ }
25807
+ },
25808
+ "discovery-form-revert-workflow": {
25809
+ systemPath: "sales.crm",
25810
+ codeRefs: [
25811
+ {
25812
+ path: "packages/elevasis-operations/src/sales/qualification/discovery/discovery-form-revert.ts",
25813
+ role: "entrypoint",
25814
+ symbol: "discoveryFormRevertWorkflow"
25815
+ }
25816
+ ],
25817
+ displayMetadata: {
25818
+ title: "INB-03 Discovery Form Revert",
25819
+ description: "Revert a deal to the pre-discovery state when a discovery form submission must be rolled back."
25820
+ }
25821
+ },
25822
+ "inb-pipeline-timeout-nurture-workflow": {
25823
+ systemPath: "sales.crm",
25824
+ codeRefs: [
25825
+ {
25826
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
25827
+ role: "entrypoint",
25828
+ symbol: "timeoutNurtureWorkflow"
25829
+ }
25830
+ ],
25831
+ displayMetadata: {
25832
+ title: "INB Pipeline Timeout: Nurture",
25833
+ description: "Timeout action for deals that have gone cold: move to nurturing and queue long-term follow-up."
25834
+ }
25835
+ },
25836
+ "inb-pipeline-timeout-close-lost-workflow": {
25837
+ systemPath: "sales.crm",
25838
+ codeRefs: [
25839
+ {
25840
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
25841
+ role: "entrypoint",
25842
+ symbol: "timeoutCloseLostWorkflow"
25843
+ }
25844
+ ],
25845
+ displayMetadata: {
25846
+ title: "INB Pipeline Timeout: Close Lost",
25847
+ description: "Timeout action for deals that have exceeded the maximum pipeline age: auto-close as lost."
25848
+ }
25849
+ },
25850
+ "inb-pipeline-timeout-no-show-workflow": {
25851
+ systemPath: "sales.crm",
25852
+ codeRefs: [
25853
+ {
25854
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
25855
+ role: "entrypoint",
25856
+ symbol: "timeoutNoShowWorkflow"
25857
+ }
25858
+ ],
25859
+ displayMetadata: {
25860
+ title: "INB Pipeline Timeout: No Show",
25861
+ description: "Timeout action for booked deals with no discovery form submitted: mark as no-show and trigger recovery."
25862
+ }
25863
+ },
25864
+ "inb-pipeline-timeout-followup-workflow": {
25865
+ systemPath: "sales.crm",
25866
+ codeRefs: [
25867
+ {
25868
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-actions.ts",
25869
+ role: "entrypoint",
25870
+ symbol: "timeoutFollowupWorkflow"
25871
+ }
25872
+ ],
25873
+ displayMetadata: {
25874
+ title: "INB Pipeline Timeout: Follow-up",
25875
+ description: "Timeout action for deals stuck in the interested stage: send a follow-up nudge or escalate."
25876
+ }
25877
+ },
25878
+ "inb-pipeline-timeout-checker-workflow": {
25879
+ systemPath: "sales.crm",
25880
+ codeRefs: [
25881
+ {
25882
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/timeout-checker.ts",
25883
+ role: "entrypoint",
25884
+ symbol: "timeoutCheckerWorkflow"
25885
+ }
25886
+ ],
25887
+ displayMetadata: {
25888
+ title: "INB Pipeline Timeout Checker",
25889
+ description: "Scheduled checker that scans the active deal pipeline for stage timeouts and dispatches timeout-action workflows."
25890
+ }
25891
+ },
25892
+ "inb-pipeline-unsubscribe-cleanup-workflow": {
25893
+ systemPath: "sales.crm",
25894
+ codeRefs: [
25895
+ {
25896
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/unsubscribe-cleanup.ts",
25897
+ role: "entrypoint",
25898
+ symbol: "unsubscribeCleanupWorkflow"
25899
+ }
25900
+ ],
25901
+ displayMetadata: {
25902
+ title: "INB Unsubscribe Cleanup",
25903
+ description: "Remove unsubscribed contacts from the active pipeline and mark their deals closed-lost."
25904
+ }
25905
+ },
25906
+ "inb-full-cleanup-workflow": {
25907
+ systemPath: "sales.crm",
25908
+ codeRefs: [
25909
+ {
25910
+ path: "packages/elevasis-operations/src/sales/crm/pipeline/full-cleanup.ts",
25911
+ role: "entrypoint",
25912
+ symbol: "fullCleanupWorkflow"
25913
+ }
25914
+ ],
25915
+ displayMetadata: {
25916
+ title: "INB Full Cleanup",
25917
+ description: "Full pipeline cleanup: archive stale deals, prune orphaned activities, and reset diagnostic test data."
25918
+ }
25919
+ },
25920
+ "lgn-01a-google-maps-scrape-workflow": {
25921
+ systemPath: "sales.lead-gen",
25922
+ ontology: {
25923
+ actions: ["sales.lead-gen:action/company.source"],
25924
+ primaryAction: "sales.lead-gen:action/company.source",
25925
+ writes: [leadGenCompany],
25926
+ usesCatalogs: [leadGenBuildTemplate, leadGenLocalServicesTemplateStep]
25927
+ },
25928
+ codeRefs: [
25929
+ {
25930
+ path: "packages/elevasis-operations/src/sales/prospecting/scrape/apify-scrape.ts",
25931
+ role: "entrypoint",
25932
+ symbol: "ldsApifyScrapeWorkflow"
25933
+ }
25934
+ ],
25935
+ displayMetadata: {
25936
+ title: "LGN-01A Google Maps Scrape",
25937
+ description: "Scrape local-services businesses from Google Maps via Apify and source companies into Lead DB."
25938
+ }
25939
+ },
25940
+ "lgn-01b-apify-acquire-workflow": {
25941
+ systemPath: "sales.lead-gen",
25942
+ ontology: {
25943
+ actions: ["sales.lead-gen:action/company.source"],
25944
+ primaryAction: "sales.lead-gen:action/company.source",
25945
+ writes: [leadGenCompany],
25946
+ usesCatalogs: [leadGenBuildTemplate, leadGenLocalServicesTemplateStep]
25947
+ },
25948
+ codeRefs: [
25949
+ {
25950
+ path: "packages/elevasis-operations/src/sales/prospecting/scrape/apify-acquire.ts",
25951
+ role: "entrypoint",
25952
+ symbol: "ldsApifyAcquireWorkflow"
25953
+ }
25954
+ ],
25955
+ displayMetadata: {
25956
+ title: "LGN-01B Apify Acquire",
25957
+ description: "Acquire and normalize Apify scrape results into Lead DB company records."
25958
+ }
25959
+ },
25960
+ "lgn-01c-apollo-import-workflow": {
25961
+ systemPath: "sales.lead-gen",
25962
+ ontology: {
25963
+ actions: ["sales.lead-gen:action/company.source"],
25964
+ primaryAction: "sales.lead-gen:action/company.source",
25965
+ writes: [leadGenCompany, leadGenContact],
25966
+ usesCatalogs: [leadGenBuildTemplate, leadGenDtcSubscriptionTemplateStep]
25967
+ },
25968
+ contract: {
25969
+ input: "@repo/elevasis-core/contracts/apollo-import#inputSchema"
25970
+ },
25971
+ codeRefs: [
25972
+ {
25973
+ path: "packages/elevasis-operations/src/sales/prospecting/scrape/apollo-import.ts",
25974
+ role: "entrypoint",
25975
+ symbol: "lgnApolloImportWorkflow"
25976
+ },
25977
+ {
25978
+ path: "packages/elevasis-operations/src/sales/prospecting/__tests__/apollo-import.test.ts",
25979
+ role: "test"
25980
+ }
25981
+ ],
25982
+ displayMetadata: {
25983
+ title: "LGN-01C Apollo Import",
25984
+ description: "Import DTC subscription companies from Apollo search results into Lead DB"
25985
+ }
25986
+ },
25987
+ "lgn-02a-apify-website-crawl-workflow": {
25988
+ systemPath: "sales.lead-gen",
25989
+ ontology: {
25990
+ actions: ["sales.lead-gen:action/company.website-extract"],
25991
+ primaryAction: "sales.lead-gen:action/company.website-extract",
25992
+ reads: [leadGenCompany],
25993
+ writes: [leadGenCompany]
25994
+ },
25995
+ contract: {
25996
+ input: "@repo/elevasis-core/contracts/apify-website-crawl#apifyWebsiteCrawlInputSchema"
25997
+ },
25998
+ displayMetadata: {
25999
+ title: "LGN-02A Apify Website Crawl",
26000
+ description: "Crawl company websites via Apify and store page markdown for downstream LLM analysis."
26001
+ }
26002
+ },
26003
+ "lgn-02-website-extract-workflow": {
26004
+ systemPath: "sales.lead-gen",
26005
+ ontology: {
26006
+ actions: ["sales.lead-gen:action/company.website-extract"],
26007
+ primaryAction: "sales.lead-gen:action/company.website-extract",
26008
+ reads: [leadGenCompany],
26009
+ writes: [leadGenCompany, leadGenContact]
26010
+ },
26011
+ contract: {
26012
+ input: "@repo/elevasis-core/contracts/website-extract#websiteExtractInputSchema"
26013
+ },
26014
+ displayMetadata: {
26015
+ title: "LGN-02 Website Extract",
26016
+ description: "LLM extraction from raw crawled markdown for company signals, staff, emails, and downstream contacts."
26017
+ }
26018
+ },
26019
+ "lgn-website-extract-compare-workflow": {
26020
+ systemPath: "sales.lead-gen",
26021
+ codeRefs: [
26022
+ {
26023
+ path: "packages/elevasis-operations/src/sales/prospecting/extract/website-extract-compare.ts",
26024
+ role: "entrypoint",
26025
+ symbol: "lgnWebsiteExtractCompareWorkflow"
26026
+ }
26027
+ ],
26028
+ displayMetadata: {
26029
+ title: "LGN Website Extract Compare",
26030
+ description: "A/B model comparison for website extraction LLM quality testing."
26031
+ }
26032
+ },
26033
+ "lgn-03-company-qualification-workflow": {
26034
+ systemPath: "sales.lead-gen",
26035
+ ontology: {
26036
+ actions: ["sales.lead-gen:action/company.qualify"],
26037
+ primaryAction: "sales.lead-gen:action/company.qualify",
26038
+ reads: [leadGenCompany],
26039
+ writes: [leadGenCompany],
26040
+ usesCatalogs: [leadGenCompanyStage],
26041
+ emits: ["sales.lead-gen:event/company.qualified"]
26042
+ },
26043
+ codeRefs: [
26044
+ {
26045
+ path: "packages/elevasis-operations/src/sales/qualification/qualify/company-qualification.ts",
26046
+ role: "entrypoint",
26047
+ symbol: "ldsCompanyQualificationWorkflow"
26048
+ },
26049
+ {
26050
+ path: "packages/elevasis-operations/src/sales/qualification/qualify/__tests__/company-qualification.test.ts",
26051
+ role: "test"
26052
+ }
26053
+ ],
26054
+ displayMetadata: {
26055
+ title: "LGN-03 Company Qualification",
26056
+ description: "LLM-based company qualification against ICP signals; marks companies qualified or filtered with reason."
26057
+ }
26058
+ },
26059
+ "lgn-03b-dtc-subscription-score-workflow": {
26060
+ systemPath: "sales.lead-gen",
26061
+ ontology: {
26062
+ actions: ["sales.lead-gen:action/company.qualify"],
26063
+ primaryAction: "sales.lead-gen:action/company.qualify",
26064
+ reads: [leadGenCompany],
26065
+ writes: [leadGenCompany],
26066
+ usesCatalogs: [leadGenCompanyStage, leadGenDtcSubscriptionTemplateStep],
26067
+ emits: ["sales.lead-gen:event/company.qualified"]
26068
+ },
26069
+ contract: {
26070
+ input: "@repo/elevasis-core/contracts/dtc-subscription-score#dtcSubscriptionScoreInputSchema",
26071
+ output: "@repo/elevasis-core/contracts/dtc-subscription-score#outputSchema"
26072
+ },
26073
+ displayMetadata: {
26074
+ title: "LGN-03B DTC Subscription Score",
26075
+ description: "Score Apollo-imported brands for DTC subscription fit and mark qualified companies."
26076
+ }
26077
+ },
26078
+ "lgn-04-email-discovery-workflow": {
26079
+ systemPath: "sales.lead-gen",
26080
+ ontology: {
26081
+ actions: ["sales.lead-gen:action/contact.discover"],
26082
+ primaryAction: "sales.lead-gen:action/contact.discover",
26083
+ reads: [leadGenCompany],
26084
+ writes: [leadGenContact],
26085
+ usesCatalogs: [leadGenContactStage]
26086
+ },
26087
+ contract: {
26088
+ input: "@repo/elevasis-core/contracts/email-discovery#emailDiscoveryInputSchema"
26089
+ },
26090
+ displayMetadata: {
26091
+ title: "LGN-04 Email Discovery",
26092
+ description: "Unified email discovery: Tomba email lookup with AnyMailFinder fallback for qualified company contacts."
26093
+ }
26094
+ },
26095
+ "lgn-04b-apollo-decision-maker-enrich-workflow": {
26096
+ systemPath: "sales.lead-gen",
26097
+ ontology: {
26098
+ actions: ["sales.lead-gen:action/contact.discover"],
26099
+ primaryAction: "sales.lead-gen:action/contact.discover",
26100
+ reads: [leadGenCompany],
26101
+ writes: [leadGenContact],
26102
+ usesCatalogs: [leadGenContactStage]
26103
+ },
26104
+ contract: {
26105
+ input: "@repo/elevasis-core/contracts/apollo-decision-makers#apolloDecisionMakerEnrichInputSchema"
26106
+ },
26107
+ displayMetadata: {
26108
+ title: "LGN-04B Apollo Decision Makers",
26109
+ description: "Enrich qualified DTC companies with prioritized Apollo decision-maker contacts."
26110
+ }
26111
+ },
26112
+ "lgn-05-email-verification-workflow": {
26113
+ systemPath: "sales.lead-gen",
26114
+ ontology: {
26115
+ actions: ["sales.lead-gen:action/contact.verify-email"],
26116
+ primaryAction: "sales.lead-gen:action/contact.verify-email",
26117
+ reads: [leadGenContact],
26118
+ writes: [leadGenContact],
26119
+ usesCatalogs: [leadGenContactStage],
26120
+ emits: ["sales.lead-gen:event/contact.verified"]
26121
+ },
26122
+ contract: {
26123
+ input: "@repo/elevasis-core/contracts/email-verification#emailVerificationInputSchema"
26124
+ },
26125
+ displayMetadata: {
26126
+ title: "LGN-05 Email Verification",
26127
+ description: "Email verification via MillionVerifier with soft-delete for invalid or disposable emails."
26128
+ }
26129
+ },
26130
+ "lgn-06-export-list-workflow": {
26131
+ systemPath: "sales.lead-gen",
26132
+ ontology: {
26133
+ actions: ["sales.lead-gen:action/export.list"],
26134
+ primaryAction: "sales.lead-gen:action/export.list",
26135
+ reads: [leadGenCompany, leadGenContact, leadGenList],
26136
+ writes: [leadGenList],
26137
+ usesCatalogs: [
26138
+ leadGenBuildTemplate,
26139
+ leadGenLocalServicesTemplateStep,
26140
+ leadGenDtcSubscriptionTemplateStep,
26141
+ leadGenCompanyStage,
26142
+ leadGenContactStage,
26143
+ crmPipeline
26144
+ ],
26145
+ emits: ["sales.lead-gen:event/list.exported"]
26146
+ },
26147
+ contract: {
26148
+ input: "@repo/elevasis-core/contracts/export-list#approvedLeadListExportInputSchema"
26149
+ },
26150
+ displayMetadata: {
26151
+ title: "LGN-06 Approved Lead List Export",
26152
+ description: "Build and finalize an export-ready approved lead list for qualified DTC subscription prospects."
26153
+ }
26154
+ },
26155
+ "lgn-import-workflow": {
26156
+ systemPath: "sales.lead-gen",
26157
+ ontology: {
26158
+ actions: ["sales.lead-gen:action/company.source"],
26159
+ primaryAction: "sales.lead-gen:action/company.source",
26160
+ writes: [leadGenCompany],
26161
+ usesCatalogs: [leadGenBuildTemplate, leadGenLocalServicesTemplateStep]
26162
+ },
26163
+ codeRefs: [
26164
+ {
26165
+ path: "packages/elevasis-operations/src/sales/prospecting/utilities/lead-import.ts",
26166
+ role: "entrypoint",
26167
+ symbol: "leadImportWorkflow"
26168
+ }
26169
+ ],
26170
+ displayMetadata: {
26171
+ title: "LGN Lead Import",
26172
+ description: "Generic import entrypoint for sourcing companies into Lead DB from external batch inputs."
26173
+ }
26174
+ },
26175
+ "lgn-company-cleanup-workflow": {
26176
+ systemPath: "sales.lead-gen",
26177
+ ontology: {
26178
+ actions: ["sales.lead-gen:action/company.qualify"],
26179
+ primaryAction: "sales.lead-gen:action/company.qualify",
26180
+ reads: [leadGenCompany],
26181
+ writes: [leadGenCompany],
26182
+ usesCatalogs: [leadGenCompanyStage]
26183
+ },
26184
+ contract: {
26185
+ input: "@repo/elevasis-core/contracts/company-cleanup#companyCleanupInputSchema"
26186
+ },
26187
+ displayMetadata: {
26188
+ title: "LGN Company Cleanup",
26189
+ description: "Classify companies via LLM and delete irrelevant companies from Lead DB."
26190
+ }
26191
+ },
26192
+ "lgn-assign-to-list-workflow": {
26193
+ systemPath: "sales.lead-gen",
26194
+ codeRefs: [
26195
+ {
26196
+ path: "packages/elevasis-operations/src/sales/prospecting/utilities/assign-to-list.ts",
26197
+ role: "entrypoint",
26198
+ symbol: "lgnAssignToListWorkflow"
26199
+ }
26200
+ ],
26201
+ displayMetadata: {
26202
+ title: "LGN Assign to List",
26203
+ description: "Assign qualified contacts to a target lead list for export and outreach handoff."
26204
+ }
26205
+ },
26206
+ "ist-upload-contacts-workflow": {
26207
+ systemPath: "sales.lead-gen",
26208
+ ontology: {
26209
+ actions: ["sales.lead-gen:action/export.list"],
26210
+ primaryAction: "sales.lead-gen:action/export.list",
26211
+ reads: [leadGenContact, leadGenList],
26212
+ writes: [leadGenList],
26213
+ usesCatalogs: [leadGenBuildTemplate],
26214
+ emits: ["sales.lead-gen:event/list.exported"]
26215
+ },
26216
+ codeRefs: [
26217
+ {
26218
+ path: "packages/elevasis-operations/src/sales/outreach/instantly/instantly-upload.ts",
26219
+ role: "entrypoint",
26220
+ symbol: "ldsInstantlyUploadWorkflow"
26221
+ }
26222
+ ]
26223
+ },
26224
+ "ist-campaign-create-workflow": {
26225
+ systemPath: "sales.lead-gen",
26226
+ ontology: {
26227
+ actions: ["sales.lead-gen:action/campaign.create"],
26228
+ primaryAction: "sales.lead-gen:action/campaign.create",
26229
+ writes: [leadGenCampaign],
26230
+ usesCatalogs: [leadGenCampaignStatus]
26231
+ }
26232
+ },
26233
+ "ist-analytics-workflow": {
26234
+ systemPath: "sales.lead-gen",
26235
+ ontology: {
26236
+ actions: ["sales.lead-gen:action/campaign.analyze"],
26237
+ primaryAction: "sales.lead-gen:action/campaign.analyze",
26238
+ reads: [leadGenCampaign],
26239
+ usesCatalogs: [leadGenCampaignStatus]
26240
+ }
26241
+ },
26242
+ "ist-ab-suggest-workflow": {
26243
+ systemPath: "sales.lead-gen",
26244
+ ontology: {
26245
+ actions: ["sales.lead-gen:action/campaign.optimize"],
26246
+ primaryAction: "sales.lead-gen:action/campaign.optimize",
26247
+ reads: [leadGenCampaign],
26248
+ writes: [leadGenCampaign],
26249
+ usesCatalogs: [leadGenCampaignStatus]
26250
+ }
26251
+ },
26252
+ "ist-personalization-workflow": {
26253
+ systemPath: "sales.lead-gen",
26254
+ ontology: {
26255
+ actions: ["sales.lead-gen:action/contact.personalize"],
26256
+ primaryAction: "sales.lead-gen:action/contact.personalize",
26257
+ reads: [leadGenContact],
26258
+ writes: [leadGenContact],
26259
+ usesCatalogs: [leadGenContactStage]
26260
+ },
26261
+ contract: {
26262
+ input: "@repo/elevasis-core/contracts/instantly-personalization#inputSchema"
26263
+ }
26264
+ },
26265
+ "ist-campaign-review-workflow": {
26266
+ systemPath: "sales.lead-gen",
26267
+ ontology: {
26268
+ actions: ["sales.lead-gen:action/campaign.analyze"],
26269
+ primaryAction: "sales.lead-gen:action/campaign.analyze",
26270
+ reads: [leadGenCampaign],
26271
+ usesCatalogs: [leadGenCampaignStatus]
26272
+ }
26273
+ },
26274
+ "ist-cleanup-workflow": {
26275
+ systemPath: "sales.lead-gen",
26276
+ ontology: {
26277
+ actions: ["sales.lead-gen:action/campaign.delete"],
26278
+ primaryAction: "sales.lead-gen:action/campaign.delete",
26279
+ reads: [leadGenCampaign],
26280
+ writes: [leadGenCampaign],
26281
+ usesCatalogs: [leadGenCampaignStatus]
26282
+ }
26283
+ },
26284
+ "ist-campaign-list-workflow": {
26285
+ systemPath: "sales.lead-gen",
26286
+ ontology: {
26287
+ actions: ["sales.lead-gen:action/campaign.sync-list"],
26288
+ primaryAction: "sales.lead-gen:action/campaign.sync-list",
26289
+ reads: [leadGenCampaign, leadGenContact],
26290
+ writes: [leadGenList],
26291
+ usesCatalogs: [leadGenBuildTemplate, leadGenCampaignStatus]
26292
+ }
26293
+ },
26294
+ "ist-campaign-delete-workflow": {
26295
+ systemPath: "sales.lead-gen",
26296
+ ontology: {
26297
+ actions: ["sales.lead-gen:action/campaign.delete"],
26298
+ primaryAction: "sales.lead-gen:action/campaign.delete",
26299
+ reads: [leadGenCampaign],
26300
+ writes: [leadGenCampaign],
26301
+ usesCatalogs: [leadGenCampaignStatus]
26302
+ }
26303
+ },
26304
+ "ist-account-inventory-workflow": {
26305
+ systemPath: "sales.lead-gen",
26306
+ ontology: {
26307
+ actions: ["sales.lead-gen:action/campaign.analyze"],
26308
+ primaryAction: "sales.lead-gen:action/campaign.analyze",
26309
+ reads: [leadGenCampaign],
26310
+ usesCatalogs: [leadGenCampaignStatus]
26311
+ }
26312
+ },
26313
+ "ist-campaign-pause-workflow": {
26314
+ systemPath: "sales.lead-gen",
26315
+ ontology: {
26316
+ actions: ["sales.lead-gen:action/campaign.pause"],
26317
+ primaryAction: "sales.lead-gen:action/campaign.pause",
26318
+ reads: [leadGenCampaign],
26319
+ writes: [leadGenCampaign],
26320
+ usesCatalogs: [leadGenCampaignStatus]
26321
+ }
26322
+ },
26323
+ "ist-campaign-activate-workflow": {
26324
+ systemPath: "sales.lead-gen",
26325
+ ontology: {
26326
+ actions: ["sales.lead-gen:action/campaign.activate"],
26327
+ primaryAction: "sales.lead-gen:action/campaign.activate",
26328
+ reads: [leadGenCampaign],
26329
+ writes: [leadGenCampaign],
26330
+ usesCatalogs: [leadGenCampaignStatus]
26331
+ }
26332
+ },
26333
+ "ist-campaign-update-accounts-workflow": {
26334
+ systemPath: "sales.lead-gen",
26335
+ ontology: {
26336
+ actions: ["sales.lead-gen:action/campaign.update"],
26337
+ primaryAction: "sales.lead-gen:action/campaign.update",
26338
+ reads: [leadGenCampaign],
26339
+ writes: [leadGenCampaign],
26340
+ usesCatalogs: [leadGenCampaignStatus]
26341
+ }
26342
+ },
26343
+ "ist-update-lead-variables-workflow": {
26344
+ systemPath: "sales.lead-gen",
26345
+ ontology: {
26346
+ actions: ["sales.lead-gen:action/campaign.update"],
26347
+ primaryAction: "sales.lead-gen:action/campaign.update",
26348
+ reads: [leadGenCampaign],
26349
+ writes: [leadGenCampaign],
26350
+ usesCatalogs: [leadGenCampaignStatus]
26351
+ }
26352
+ },
26353
+ "mnt-reddit-monitor-workflow": {
26354
+ systemPath: "sales.lead-gen"
26355
+ },
26356
+ "mnt-reddit-scan-workflow": {
26357
+ systemPath: "sales.lead-gen"
26358
+ },
26359
+ "mnt-linkedin-monitor-workflow": {
26360
+ systemPath: "sales.lead-gen"
26361
+ },
26362
+ "website-form-intake-handler-workflow": {
26363
+ systemPath: "seo"
26364
+ },
26365
+ "grsi-change-request-workflow": {
26366
+ systemPath: "client-management"
26367
+ },
26368
+ "iss-submission-workflow": {
26369
+ systemPath: "client-management",
26370
+ ontology: {
26371
+ actions: ["client-management:action/support-issue.review"],
26372
+ primaryAction: "client-management:action/support-issue.review",
26373
+ writes: [clientSupportIssue],
26374
+ usesCatalogs: [clientSupportIssueSeverity],
26375
+ emits: ["client-management:event/support-issue.submitted"]
26376
+ }
26377
+ },
26378
+ "youtube-research-workflow": {
26379
+ systemPath: "platform"
26380
+ },
26381
+ "send-email-workflow": {
26382
+ systemPath: "platform"
26383
+ },
26384
+ "platform-status": {
26385
+ systemPath: "platform"
26386
+ },
26387
+ "deal-browse": {
26388
+ systemPath: "sales.crm"
26389
+ },
26390
+ "crm-send-reply-workflow": {
26391
+ systemPath: "sales.crm",
26392
+ ontology: {
26393
+ actions: ["sales.crm:action/deal.send-reply"],
26394
+ primaryAction: "sales.crm:action/deal.send-reply",
26395
+ reads: [crmDeal, crmContact],
26396
+ writes: [crmDeal]
26397
+ },
26398
+ codeRefs: [
26399
+ {
26400
+ path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-reply.ts",
26401
+ role: "entrypoint",
26402
+ symbol: "sendReplyWorkflow"
26403
+ },
26404
+ crmActionWorkflowSchemaCodeRef
26405
+ ],
26406
+ displayMetadata: {
26407
+ title: "CRM Send Reply",
26408
+ description: "Send a manual reply to an interested prospect via Instantly or Resend and record the CRM activity."
26409
+ }
26410
+ },
26411
+ "crm-reply-followup-workflow": {
26412
+ systemPath: "sales.crm",
26413
+ ontology: {
26414
+ actions: ["sales.crm:action/deal.send-reply"],
26415
+ primaryAction: "sales.crm:action/deal.send-reply",
26416
+ reads: [crmDeal, crmContact],
26417
+ writes: [crmDeal]
26418
+ },
26419
+ codeRefs: [
26420
+ {
26421
+ path: "packages/elevasis-operations/src/sales/crm/actions/crm-reply-followup.ts",
26422
+ role: "entrypoint",
26423
+ symbol: "replyFollowupWorkflow"
26424
+ }
26425
+ ],
26426
+ displayMetadata: {
26427
+ title: "CRM Reply Follow-up",
26428
+ description: "Send Day 3/5/7 scheduled follow-ups after a user-authored CRM reply in the interested stage."
26429
+ }
26430
+ },
26431
+ "crm-send-booking-link-workflow": {
26432
+ systemPath: "sales.crm",
26433
+ ontology: {
26434
+ actions: ["sales.crm:action/deal.send-booking-link"],
26435
+ primaryAction: "sales.crm:action/deal.send-booking-link",
26436
+ reads: [crmDeal, crmContact],
26437
+ writes: [crmDeal]
26438
+ },
26439
+ codeRefs: [
26440
+ {
26441
+ path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-booking-link.ts",
26442
+ role: "entrypoint",
26443
+ symbol: "sendBookingLinkWorkflow"
26444
+ },
26445
+ crmActionWorkflowSchemaCodeRef
26446
+ ],
26447
+ displayMetadata: {
26448
+ title: "CRM Send Booking Link",
26449
+ description: "Send a Cal.com booking link to an interested prospect and advance the deal state."
26450
+ }
26451
+ },
26452
+ "crm-send-nudge-workflow": {
26453
+ systemPath: "sales.crm",
26454
+ ontology: {
26455
+ actions: ["sales.crm:action/deal.send-nudge"],
26456
+ primaryAction: "sales.crm:action/deal.send-nudge",
26457
+ reads: [crmDeal, crmContact],
26458
+ writes: [crmDeal]
26459
+ },
26460
+ codeRefs: [
26461
+ {
26462
+ path: "packages/elevasis-operations/src/sales/crm/actions/crm-send-nudge.ts",
26463
+ role: "entrypoint",
26464
+ symbol: "sendNudgeWorkflow"
26465
+ },
26466
+ crmActionWorkflowSchemaCodeRef
26467
+ ],
26468
+ displayMetadata: {
26469
+ title: "CRM Send Nudge",
26470
+ description: "Send a scheduled nudge reminder to a prospect who has not yet booked after receiving a booking link."
26471
+ }
26472
+ },
26473
+ "crm-rebook-workflow": {
26474
+ systemPath: "sales.crm",
26475
+ ontology: {
26476
+ actions: ["sales.crm:action/deal.rebook"],
26477
+ primaryAction: "sales.crm:action/deal.rebook",
26478
+ reads: [crmDeal, crmContact],
26479
+ writes: [crmDeal]
26480
+ },
26481
+ codeRefs: [
26482
+ {
26483
+ path: "packages/elevasis-operations/src/sales/crm/actions/crm-rebook.ts",
26484
+ role: "entrypoint",
26485
+ symbol: "rebookWorkflow"
26486
+ },
26487
+ crmActionWorkflowSchemaCodeRef
26488
+ ],
26489
+ displayMetadata: {
26490
+ title: "CRM Rebook",
26491
+ description: "Re-send a booking link to a no-show or lapsed prospect and reset the deal state for a new booking attempt."
26492
+ }
26493
+ },
26494
+ "move_to_proposal-workflow": {
26495
+ systemPath: "sales.crm",
26496
+ ontology: {
26497
+ actions: ["sales.crm:action/deal.update-stage"],
26498
+ primaryAction: "sales.crm:action/deal.update-stage",
26499
+ reads: [crmDeal],
26500
+ writes: [crmDeal],
26501
+ usesCatalogs: [crmPipeline],
26502
+ emits: ["sales.crm:event/deal.stage-changed"]
26503
+ },
26504
+ codeRefs: [
26505
+ {
26506
+ path: "packages/elevasis-operations/src/sales/crm/actions/move-to-proposal.ts",
26507
+ role: "entrypoint",
26508
+ symbol: "moveToProposalWorkflow"
26509
+ }
26510
+ ],
26511
+ displayMetadata: {
26512
+ title: "CRM Move to Proposal",
26513
+ description: "Advance a qualified discovery deal to the proposal stage and trigger downstream proposal generation."
26514
+ }
26515
+ },
26516
+ "move_to_closing-workflow": {
26517
+ systemPath: "sales.crm",
26518
+ ontology: {
26519
+ actions: ["sales.crm:action/deal.update-stage"],
26520
+ primaryAction: "sales.crm:action/deal.update-stage",
26521
+ reads: [crmDeal],
26522
+ writes: [crmDeal],
26523
+ usesCatalogs: [crmPipeline],
26524
+ emits: ["sales.crm:event/deal.stage-changed"]
26525
+ },
26526
+ codeRefs: [
26527
+ {
26528
+ path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closing.ts",
26529
+ role: "entrypoint",
26530
+ symbol: "moveToClosingWorkflow"
26531
+ },
26532
+ crmActionWorkflowSchemaCodeRef
26533
+ ],
26534
+ displayMetadata: {
26535
+ title: "CRM Move to Closing",
26536
+ description: "Advance a proposal deal to the closing stage and record the stage transition activity."
26537
+ }
26538
+ },
26539
+ "move_to_closed_won-workflow": {
26540
+ systemPath: "sales.crm",
26541
+ ontology: {
26542
+ actions: ["sales.crm:action/deal.update-stage"],
26543
+ primaryAction: "sales.crm:action/deal.update-stage",
26544
+ reads: [crmDeal],
26545
+ writes: [crmDeal],
26546
+ usesCatalogs: [crmPipeline],
26547
+ emits: ["sales.crm:event/deal.stage-changed"]
26548
+ },
26549
+ codeRefs: [
26550
+ {
26551
+ path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closed-won.ts",
26552
+ role: "entrypoint",
26553
+ symbol: "moveToClosedWonWorkflow"
26554
+ },
26555
+ crmActionWorkflowSchemaCodeRef
26556
+ ],
26557
+ displayMetadata: {
26558
+ title: "CRM Close Won",
26559
+ description: "Mark a deal as closed-won, record the outcome, and trigger post-close onboarding steps."
26560
+ }
26561
+ },
26562
+ "move_to_closed_lost-workflow": {
26563
+ systemPath: "sales.crm",
26564
+ ontology: {
26565
+ actions: ["sales.crm:action/deal.update-stage"],
26566
+ primaryAction: "sales.crm:action/deal.update-stage",
26567
+ reads: [crmDeal],
26568
+ writes: [crmDeal],
26569
+ usesCatalogs: [crmPipeline],
26570
+ emits: ["sales.crm:event/deal.stage-changed"]
26571
+ },
26572
+ codeRefs: [
26573
+ {
26574
+ path: "packages/elevasis-operations/src/sales/crm/actions/move-to-closed-lost.ts",
26575
+ role: "entrypoint",
26576
+ symbol: "moveToClosedLostWorkflow"
26577
+ },
26578
+ crmActionWorkflowSchemaCodeRef
26579
+ ],
26580
+ displayMetadata: {
26581
+ title: "CRM Close Lost",
26582
+ description: "Mark a deal as closed-lost, record the reason, and archive the deal from the active pipeline."
26583
+ }
26584
+ },
26585
+ "move_to_nurturing-workflow": {
26586
+ systemPath: "sales.crm",
26587
+ ontology: {
26588
+ actions: ["sales.crm:action/deal.update-stage"],
26589
+ primaryAction: "sales.crm:action/deal.update-stage",
26590
+ reads: [crmDeal],
26591
+ writes: [crmDeal],
26592
+ usesCatalogs: [crmPipeline],
26593
+ emits: ["sales.crm:event/deal.stage-changed"]
26594
+ },
26595
+ codeRefs: [
26596
+ {
26597
+ path: "packages/elevasis-operations/src/sales/crm/actions/move-to-nurturing.ts",
26598
+ role: "entrypoint",
26599
+ symbol: "moveToNurturingWorkflow"
26600
+ },
26601
+ crmActionWorkflowSchemaCodeRef
26602
+ ],
26603
+ displayMetadata: {
26604
+ title: "CRM Move to Nurturing",
26605
+ description: "Move a stalled deal into the nurturing stage for long-term follow-up sequencing."
26606
+ }
26607
+ },
26608
+ "mark_no_show-workflow": {
26609
+ systemPath: "sales.crm",
26610
+ ontology: {
26611
+ actions: ["sales.crm:action/deal.update-stage"],
26612
+ primaryAction: "sales.crm:action/deal.update-stage",
26613
+ reads: [crmDeal],
26614
+ writes: [crmDeal],
26615
+ usesCatalogs: [crmPipeline],
26616
+ emits: ["sales.crm:event/deal.stage-changed"]
26617
+ },
26618
+ codeRefs: [
26619
+ {
26620
+ path: "packages/elevasis-operations/src/sales/crm/actions/mark-no-show.ts",
26621
+ role: "entrypoint",
26622
+ symbol: "markNoShowWorkflow"
26623
+ },
26624
+ {
26625
+ path: "packages/elevasis-operations/src/sales/crm/shared/action-workflow-schemas.ts",
26626
+ role: "schema",
26627
+ symbol: "ActionWorkflowInputSchema"
26628
+ }
26629
+ ],
26630
+ displayMetadata: {
26631
+ title: "CRM Mark No Show",
26632
+ description: "Mark a booked deal as a no-show and transition it to the appropriate recovery state."
26486
26633
  }
26487
26634
  }
26488
26635
  };
26636
+ function titleFromResourceId(resourceId) {
26637
+ return resourceId.replace(/-workflow$/, "").replace(/[-_]+/g, " ").replace(/\b\w/g, (character) => character.toUpperCase());
26638
+ }
26639
+ var platformWorkflowResources = Object.entries(platformWorkflowResourceDefinitions).map(
26640
+ ([id, { systemPath: systemPath2, ontology, contract, codeRefs, displayMetadata }], index) => {
26641
+ const ontologyWithContract = ontology !== void 0 || contract !== void 0 ? {
26642
+ ...ontology ?? {},
26643
+ ...contract ? { contract } : {}
26644
+ } : void 0;
26645
+ const title = displayMetadata?.title ?? titleFromResourceId(id);
26646
+ return {
26647
+ id,
26648
+ order: (index + 1) * 10,
26649
+ kind: "workflow",
26650
+ systemPath: systemPath2,
26651
+ title,
26652
+ description: displayMetadata?.description ?? `Workflow resource for ${title}.`,
26653
+ ownerRoleId: getPlatformOwnerRoleId(systemPath2),
26654
+ status: "active",
26655
+ ...codeRefs ? { codeRefs } : {},
26656
+ ...ontologyWithContract ? { ontology: ontologyWithContract } : {}
26657
+ };
26658
+ }
26659
+ );
26660
+ var platformIntegrationResources = [
26661
+ {
26662
+ id: "inb-attio-integration",
26663
+ order: 10,
26664
+ kind: "integration",
26665
+ systemPath: "sales.crm",
26666
+ status: "active",
26667
+ codeRefs: [
26668
+ {
26669
+ path: "packages/elevasis-operations/src/metadata.ts",
26670
+ role: "config",
26671
+ symbol: "integrations"
26672
+ }
26673
+ ],
26674
+ provider: "attio"
26675
+ },
26676
+ {
26677
+ id: "inb-instantly-integration",
26678
+ order: 20,
26679
+ kind: "integration",
26680
+ systemPath: "sales.lead-gen",
26681
+ status: "active",
26682
+ codeRefs: [
26683
+ {
26684
+ path: "packages/elevasis-operations/src/metadata.ts",
26685
+ role: "config",
26686
+ symbol: "integrations"
26687
+ }
26688
+ ],
26689
+ provider: "instantly"
26690
+ },
26691
+ {
26692
+ id: "integration-resend-elevasis",
26693
+ order: 30,
26694
+ kind: "integration",
26695
+ systemPath: "sales.crm",
26696
+ status: "active",
26697
+ codeRefs: [
26698
+ {
26699
+ path: "packages/elevasis-operations/src/metadata.ts",
26700
+ role: "config",
26701
+ symbol: "integrations"
26702
+ }
26703
+ ],
26704
+ provider: "resend"
26705
+ },
26706
+ {
26707
+ id: "integration-apify-elevasis",
26708
+ order: 40,
26709
+ kind: "integration",
26710
+ systemPath: "sales.lead-gen",
26711
+ status: "active",
26712
+ codeRefs: [
26713
+ {
26714
+ path: "packages/elevasis-operations/src/metadata.ts",
26715
+ role: "config",
26716
+ symbol: "integrations"
26717
+ }
26718
+ ],
26719
+ provider: "apify"
26720
+ },
26721
+ {
26722
+ id: "integration-apollo-elevasis",
26723
+ order: 50,
26724
+ kind: "integration",
26725
+ systemPath: "sales.lead-gen",
26726
+ status: "active",
26727
+ codeRefs: [
26728
+ {
26729
+ path: "packages/elevasis-operations/src/metadata.ts",
26730
+ role: "config",
26731
+ symbol: "integrations"
26732
+ }
26733
+ ],
26734
+ provider: "apollo"
26735
+ }
26736
+ ];
26737
+ var platformIntegrationResourcesWithOwners = platformIntegrationResources.map((resource2) => ({
26738
+ ...resource2,
26739
+ ownerRoleId: getPlatformOwnerRoleId(resource2.systemPath)
26740
+ }));
26741
+ var platformResourceDescriptors = defineResources(
26742
+ Object.fromEntries(
26743
+ [
26744
+ ...platformWorkflowResources,
26745
+ ...platformIntegrationResourcesWithOwners,
26746
+ {
26747
+ id: "command-center-assistant",
26748
+ order: 1e4,
26749
+ kind: "agent",
26750
+ systemPath: "platform.projects",
26751
+ ownerRoleId: "role.operator",
26752
+ actsAsRoleId: "role.operator",
26753
+ status: "active",
26754
+ codeRefs: [
26755
+ {
26756
+ path: "apps/api/src/resources/command-center-assistant/definition.ts",
26757
+ role: "entrypoint",
26758
+ symbol: "commandCenterAssistantDefinition"
26759
+ },
26760
+ {
26761
+ path: "apps/api/src/resources/index.ts",
26762
+ role: "config",
26763
+ symbol: "registerSystemResources"
26764
+ }
26765
+ ],
26766
+ agentKind: "platform",
26767
+ sessionCapable: true,
26768
+ invocations: [
26769
+ { kind: "slash-command", command: "/help" },
26770
+ { kind: "slash-command", command: "/work" }
26771
+ ]
26772
+ }
26773
+ ].map((resource2) => [resource2.id, resource2])
26774
+ )
26775
+ );
26776
+ Object.values(platformResourceDescriptors);
26777
+ Object.fromEntries(
26778
+ Object.values(platformResourceDescriptors).flatMap(
26779
+ (resource2) => resource2.ontology === void 0 ? [] : [[resource2.id, resource2.ontology]]
26780
+ )
26781
+ );
26489
26782
 
26490
26783
  // ../elevasis-core/src/organization-model/topology.ts
26491
26784
  function resource(resourceId) {
@@ -26660,29 +26953,6 @@ var platformTopology = defineTopology(
26660
26953
  );
26661
26954
 
26662
26955
  // ../elevasis-core/src/organization-model/assembly.ts
26663
- function assignResponsibleRoles(systems) {
26664
- function roleFor(systemId) {
26665
- if (systemId === "sales.lead-gen") return "role.growth-operator";
26666
- if (systemId === "sales.crm") return "role.crm-operator";
26667
- if (systemId === "seo") return "role.website-operator";
26668
- if (systemId === "client-management") return "role.client-support-operator";
26669
- return "role.operator";
26670
- }
26671
- function applyToMap(map, prefix = "") {
26672
- return Object.fromEntries(
26673
- Object.entries(map).map(([key, system]) => [
26674
- key,
26675
- {
26676
- ...system,
26677
- responsibleRoleId: roleFor(prefix ? `${prefix}.${key}` : key),
26678
- ...system.systems ? { systems: applyToMap(system.systems, prefix ? `${prefix}.${key}` : key) } : {},
26679
- ...system.subsystems ? { subsystems: applyToMap(system.subsystems, prefix ? `${prefix}.${key}` : key) } : {}
26680
- }
26681
- ])
26682
- );
26683
- }
26684
- return applyToMap(systems);
26685
- }
26686
26956
  var canonicalOrganizationModel = resolveOrganizationModel(
26687
26957
  {
26688
26958
  version: 1,
@@ -26706,7 +26976,7 @@ var canonicalOrganizationModel = resolveOrganizationModel(
26706
26976
  navigation: platformNavigation,
26707
26977
  identity: platformIdentity,
26708
26978
  roles: platformRoles,
26709
- systems: assignResponsibleRoles(platformSystems),
26979
+ systems: platformSystems,
26710
26980
  actions: ELEVASIS_DEFAULT_ORGANIZATION_MODEL_ACTIONS,
26711
26981
  entities: ELEVASIS_ORGANIZATION_MODEL_ENTITIES,
26712
26982
  resources: platformResourceDescriptors,