salesforce-metadata-mcp 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1407,10 +1407,387 @@ export const CreateExperienceSiteMemberSchema = z.object({
1407
1407
  }).strict();
1408
1408
  export const SetExperienceSiteBrandingSchema = z.object({
1409
1409
  siteName: z.string().min(1).describe("Experience Cloud site API name"),
1410
- primaryColor: z.string().optional().describe("Primary brand color as hex, e.g. '#0176D3'"),
1411
- secondaryColor: z.string().optional().describe("Secondary brand color as hex"),
1412
- backgroundColor: z.string().optional().describe("Page background color as hex"),
1413
- headerBackgroundColor: z.string().optional().describe("Header background color as hex"),
1414
- logoUrl: z.string().url().optional().describe("Logo image URL"),
1410
+ brandingSetName: z.string().min(1).describe("API name for the BrandingSet metadata component"),
1411
+ label: z.string().optional().describe("Human-readable label for the branding set"),
1412
+ properties: z.array(z.object({
1413
+ name: z.string().min(1).describe("Branding token name, e.g. 'brandingDesignTokenPrimaryColor'"),
1414
+ value: z.string().min(1).describe("Token value, e.g. '#0070D2'"),
1415
+ })).optional().describe("Branding property name/value pairs"),
1416
+ }).strict();
1417
+ // ─── OMNISTUDIO (v2.3.0) ──────────────────────────────────────────────────────
1418
+ const OmniCardFieldSchema = z.object({ fieldName: z.string().min(1), label: z.string().min(1), type: z.string().default("Text") });
1419
+ const OmniCardActionSchema = z.object({ label: z.string().min(1), type: z.enum(["omniscript","url","flow","navigation"]).default("navigation"), target: z.string().min(1) });
1420
+ const OmniCardStateConditionSchema = z.object({ field: z.string().min(1), operator: z.string().default("=="), value: z.string() });
1421
+ const OmniCardStateSchema = z.object({ name: z.string().min(1), conditionType: z.enum(["ALL","ANY","CUSTOM"]).default("ALL"), conditions: z.array(OmniCardStateConditionSchema).optional() });
1422
+ export const CreateFlexCardSchema = z.object({
1423
+ cardName: z.string().min(1).max(80).describe("API name of the FlexCard (OmniUiCard)"),
1424
+ label: z.string().min(1).max(255).describe("Human-readable label"),
1425
+ objectApiName: z.string().optional().describe("Primary SObject, e.g. 'Account'"),
1426
+ dataSourceType: z.enum(["SOQL","DataRaptor","Integration Procedure","Apex","None"]).default("SOQL"),
1427
+ dataSourceName: z.string().optional().describe("SOQL query, DataRaptor name, or Integration Procedure name"),
1428
+ fields: z.array(OmniCardFieldSchema).optional().describe("Fields to display on the card"),
1429
+ actions: z.array(OmniCardActionSchema).optional().describe("Card actions"),
1430
+ states: z.array(OmniCardStateSchema).optional().describe("Conditional states"),
1431
+ description: z.string().optional(),
1432
+ }).strict();
1433
+ export const UpdateFlexCardSchema = z.object({
1434
+ cardName: z.string().min(1).max(80).describe("API name of the FlexCard to update"),
1435
+ label: z.string().optional(),
1436
+ dataSourceType: z.enum(["SOQL","DataRaptor","Integration Procedure","Apex","None"]).optional(),
1437
+ dataSourceName: z.string().optional(),
1438
+ fields: z.array(OmniCardFieldSchema).optional(),
1439
+ actions: z.array(OmniCardActionSchema).optional(),
1440
+ states: z.array(OmniCardStateSchema).optional(),
1441
+ description: z.string().optional(),
1442
+ }).strict();
1443
+ export const ActivateFlexCardSchema = z.object({
1444
+ cardName: z.string().min(1).max(80).describe("API name of the FlexCard to activate"),
1445
+ }).strict();
1446
+ export const GetFlexCardSchema = z.object({
1447
+ cardName: z.string().min(1).max(80).describe("API name of the FlexCard to retrieve"),
1448
+ }).strict();
1449
+ const OmniElementSchema = z.object({
1450
+ name: z.string().min(1),
1451
+ type: z.enum(["Text","Input","Select","Radio","Checkbox","Step","Group","TypeAhead","Formula","RemoteAction","DataRaptor","IntegrationProcedure","Disclosure","Navigation","Block"]),
1452
+ label: z.string().min(1),
1453
+ properties: z.record(z.unknown()).optional().describe("Element-specific configuration properties"),
1454
+ });
1455
+ export const CreateOmniScriptSchema = z.object({
1456
+ scriptName: z.string().min(1).max(80).describe("API name identifier portion (used in fullName as Type_SubType_Language)"),
1457
+ label: z.string().min(1).max(255),
1458
+ type: z.string().min(1).describe("OmniScript type, e.g. 'Account', 'Claims'"),
1459
+ subType: z.string().min(1).describe("OmniScript sub-type, e.g. 'Create', 'Edit'"),
1460
+ language: z.string().default("English").describe("Language label, default English"),
1461
+ isLwcEnabled: z.boolean().default(true).describe("Use LWC runtime (recommended for new scripts)"),
1462
+ isOmniScriptEmbeddable: z.boolean().default(false).describe("Allow embedding in OmniStudio cards"),
1463
+ elements: z.array(OmniElementSchema).optional().describe("Script elements; complex structures are set via the OmniScript designer"),
1464
+ description: z.string().optional(),
1465
+ }).strict();
1466
+ export const UpdateOmniScriptSchema = z.object({
1467
+ type: z.string().min(1).describe("OmniScript type"),
1468
+ subType: z.string().min(1).describe("OmniScript sub-type"),
1469
+ language: z.string().default("English"),
1470
+ description: z.string().optional(),
1471
+ isLwcEnabled: z.boolean().optional(),
1472
+ isOmniScriptEmbeddable: z.boolean().optional(),
1473
+ }).strict();
1474
+ export const ActivateOmniScriptSchema = z.object({
1475
+ type: z.string().min(1).describe("OmniScript type"),
1476
+ subType: z.string().min(1).describe("OmniScript sub-type"),
1477
+ language: z.string().default("English"),
1478
+ }).strict();
1479
+ export const GetOmniScriptSchema = z.object({
1480
+ type: z.string().min(1).describe("OmniScript type"),
1481
+ subType: z.string().min(1).describe("OmniScript sub-type"),
1482
+ language: z.string().default("English"),
1483
+ }).strict();
1484
+ const DataRaptorFieldMappingSchema = z.object({
1485
+ sourceField: z.string().min(1).describe("Source field path, e.g. 'Account.Name' or JSONPath '$.Name'"),
1486
+ targetField: z.string().min(1).describe("Target field or JSON key"),
1487
+ dataType: z.enum(["String","Number","Boolean","Date","Object","Array"]).default("String"),
1488
+ formula: z.string().optional().describe("Optional formula or transformation expression"),
1489
+ });
1490
+ export const CreateDataRaptorSchema = z.object({
1491
+ dataRaptorName: z.string().min(1).max(80).describe("API name of the DataRaptor"),
1492
+ label: z.string().min(1).max(255),
1493
+ interfaceType: z.enum(["Extract","Transform","Load"]).describe("DataRaptor type: Extract reads from SF, Transform maps data, Load writes to SF"),
1494
+ objectApiName: z.string().optional().describe("Primary SObject for Extract or Load (e.g. 'Account')"),
1495
+ fields: z.array(DataRaptorFieldMappingSchema).optional().describe("Field mappings"),
1496
+ filterCriteria: z.string().optional().describe("SOQL WHERE clause for Extract, e.g. 'Id = :recordId'"),
1497
+ description: z.string().optional(),
1498
+ }).strict();
1499
+ export const GetDataRaptorSchema = z.object({
1500
+ dataRaptorName: z.string().min(1).max(80).describe("API name of the DataRaptor to retrieve"),
1501
+ }).strict();
1502
+ const IPElementSchema = z.object({
1503
+ name: z.string().min(1),
1504
+ type: z.enum(["DataRaptor","HTTPAction","Response","Loop","Conditional","SetValues","ExceptionBlock","Matrix","OmniScript","Aggregate"]),
1505
+ properties: z.record(z.unknown()).optional().describe("Element configuration (DataRaptor name, HTTP method/endpoint, etc.)"),
1506
+ inputMap: z.record(z.string()).optional().describe("Input parameter mappings {targetKey: 'sourceExpression'}"),
1507
+ outputMap: z.record(z.string()).optional().describe("Output parameter mappings {sourceKey: 'targetPath'}"),
1508
+ });
1509
+ export const CreateIntegrationProcedureSchema = z.object({
1510
+ procedureName: z.string().min(1).max(80).describe("Type portion of procedure key, e.g. 'Account'"),
1511
+ subType: z.string().min(1).describe("Sub-type portion, e.g. 'GetDetails' — fullName = type_subType"),
1512
+ label: z.string().min(1).max(255),
1513
+ elements: z.array(IPElementSchema).optional().describe("Procedure elements (DataRaptor, HTTP calls, conditionals)"),
1514
+ isActive: z.boolean().default(false).describe("Activate immediately after creation"),
1515
+ description: z.string().optional(),
1516
+ }).strict();
1517
+ export const UpdateIntegrationProcedureSchema = z.object({
1518
+ procedureName: z.string().min(1).max(80).describe("Type portion of procedure key"),
1519
+ subType: z.string().min(1),
1520
+ description: z.string().optional(),
1521
+ isActive: z.boolean().optional(),
1522
+ }).strict();
1523
+ export const GetIntegrationProcedureSchema = z.object({
1524
+ procedureName: z.string().min(1).max(80),
1525
+ subType: z.string().min(1),
1526
+ }).strict();
1527
+ export const ActivateIntegrationProcedureSchema = z.object({
1528
+ procedureName: z.string().min(1).max(80),
1529
+ subType: z.string().min(1),
1530
+ }).strict();
1531
+ const CalcVariableSchema = z.object({ name: z.string().min(1), dataType: z.enum(["String","Number","Boolean","Date"]).default("String") });
1532
+ export const CreateCalculationMatrixSchema = z.object({
1533
+ matrixName: z.string().min(1).max(80).describe("API name of the Calculation Matrix"),
1534
+ label: z.string().min(1).max(255),
1535
+ inputVariables: z.array(CalcVariableSchema).min(1).describe("Input column definitions"),
1536
+ outputVariables: z.array(CalcVariableSchema).min(1).describe("Output column definitions"),
1537
+ rows: z.array(z.record(z.string())).optional().describe("Matrix rows: array of {inputVarName: value, ..., outputVarName: value}"),
1538
+ description: z.string().optional(),
1539
+ }).strict();
1540
+ const CalcStepSchema = z.object({
1541
+ name: z.string().min(1),
1542
+ type: z.enum(["Matrix","Expression","Loop","Condition"]).default("Expression"),
1543
+ matrixName: z.string().optional().describe("For Matrix steps: CalculationMatrix API name"),
1544
+ expression: z.string().optional().describe("For Expression steps: formula string"),
1545
+ inputMap: z.record(z.string()).optional(),
1546
+ outputMap: z.record(z.string()).optional(),
1547
+ });
1548
+ export const CreateCalculationProcedureSchema = z.object({
1549
+ procedureName: z.string().min(1).max(80).describe("API name of the Calculation Procedure"),
1550
+ label: z.string().min(1).max(255),
1551
+ steps: z.array(CalcStepSchema).optional().describe("Procedure steps"),
1552
+ description: z.string().optional(),
1553
+ }).strict();
1554
+ // ─── OMNICHANNEL (v2.3.0) ────────────────────────────────────────────────────
1555
+ export const CreateServiceChannelSchema = z.object({
1556
+ channelName: z.string().min(1).max(80).describe("API name / DeveloperName of the Service Channel"),
1557
+ label: z.string().min(1).max(255),
1558
+ channelType: z.enum(["Case","Chat","Messaging","Voice","Email","SocialPost","Custom"]).default("Case"),
1559
+ relatedObjectApiName: z.string().optional().describe("SObject routed via this channel, default 'Case'"),
1560
+ capacity: z.number().int().min(1).max(100).default(1).describe("Capacity weight for this channel"),
1561
+ }).strict();
1562
+ export const CreateRoutingConfigurationSchema = z.object({
1563
+ configName: z.string().min(1).max(80).describe("API name of the RoutingConfiguration"),
1564
+ label: z.string().min(1).max(255),
1565
+ routingModel: z.enum(["LeastActive","MostAvailable","ExternalRouting"]).default("LeastActive"),
1566
+ capacity: z.number().min(0).max(100).default(100).describe("Capacity percentage or item count"),
1567
+ priority: z.number().int().min(1).default(1).describe("Routing priority (lower number = higher priority)"),
1568
+ unitType: z.enum(["Percentage","Items"]).default("Percentage"),
1569
+ pushTimeout: z.number().int().min(0).optional().describe("Seconds before push routing times out (0 = no timeout)"),
1570
+ description: z.string().optional(),
1571
+ }).strict();
1572
+ export const CreateQueueRoutingConfigSchema = z.object({
1573
+ queueDeveloperName: z.string().min(1).max(80).describe("DeveloperName of the existing queue"),
1574
+ routingConfigName: z.string().min(1).max(80).describe("API name of the RoutingConfiguration to link"),
1575
+ }).strict();
1576
+ export const CreatePresenceConfigurationSchema = z.object({
1577
+ configName: z.string().min(1).max(80).describe("API name of the PresenceUserConfig"),
1578
+ label: z.string().min(1).max(255),
1579
+ capacity: z.number().int().min(1).max(100).default(10).describe("Maximum concurrent work items per agent"),
1580
+ serviceChannels: z.array(z.object({ channelName: z.string().min(1), capacity: z.number().int().min(1).optional() })).optional(),
1581
+ allowAgentsToChangeStatus: z.boolean().default(true),
1582
+ description: z.string().optional(),
1583
+ }).strict();
1584
+ export const CreatePresenceStatusSchema = z.object({
1585
+ statusName: z.string().min(1).max(80).describe("API name / DeveloperName of the Presence Status"),
1586
+ label: z.string().min(1).max(255),
1587
+ statusType: z.enum(["Online","Busy","Offline"]).default("Online"),
1588
+ serviceChannels: z.array(z.string()).optional().describe("ServiceChannel API names to associate"),
1589
+ }).strict();
1590
+ export const AssignPresenceStatusSchema = z.object({
1591
+ statusName: z.string().min(1).max(80).describe("API name of the ServicePresenceStatus"),
1592
+ profiles: z.array(z.string()).optional().describe("Profile API names to grant access"),
1593
+ permissionSets: z.array(z.string()).optional().describe("Permission Set API names to grant access"),
1594
+ }).strict();
1595
+ export const CreateSkillSchema = z.object({
1596
+ skillName: z.string().min(1).max(80).describe("DeveloperName / API name of the skill"),
1597
+ label: z.string().min(1).max(255),
1598
+ description: z.string().optional(),
1599
+ }).strict();
1600
+ export const AssignSkillToAgentSchema = z.object({
1601
+ skillName: z.string().min(1).max(80).describe("Skill DeveloperName"),
1602
+ username: z.string().min(1).describe("Salesforce username of the service agent"),
1603
+ skillLevel: z.number().min(0).max(10).default(5).describe("Proficiency level 0 (novice) to 10 (expert)"),
1604
+ }).strict();
1605
+ export const CreateServiceTerritorySchema = z.object({
1606
+ territoryName: z.string().min(1).max(80).describe("Name of the Service Territory"),
1607
+ label: z.string().min(1).max(255),
1608
+ isActive: z.boolean().default(true),
1609
+ operatingHoursName: z.string().optional().describe("Name of the OperatingHours record to link"),
1610
+ street: z.string().optional(),
1611
+ city: z.string().optional(),
1612
+ state: z.string().optional(),
1613
+ country: z.string().optional(),
1614
+ postalCode: z.string().optional(),
1615
+ }).strict();
1616
+ export const CreateWorkTypeSchema = z.object({
1617
+ workTypeName: z.string().min(1).max(80).describe("Name of the Work Type"),
1618
+ label: z.string().min(1).max(255).describe("Display label (used as Name field)"),
1619
+ estimatedDuration: z.number().min(1).describe("Estimated work duration value"),
1620
+ durationType: z.enum(["Minutes","Hours"]).default("Minutes"),
1621
+ blockTimeBeforeWork: z.number().min(0).default(0).describe("Buffer time before work in minutes"),
1622
+ blockTimeAfterWork: z.number().min(0).default(0).describe("Buffer time after work in minutes"),
1623
+ skillRequirements: z.array(z.string()).optional().describe("Required Skill DeveloperNames"),
1624
+ description: z.string().optional(),
1625
+ }).strict();
1626
+ export const CreateMessagingChannelSchema = z.object({
1627
+ channelName: z.string().min(1).max(80).describe("API name / MasterLabel for the Messaging Channel"),
1628
+ label: z.string().min(1).max(255),
1629
+ channelType: z.enum(["SMS","WhatsApp","Facebook","AppleMessages","GoogleBusinessMessages","LINE","Voice"]),
1630
+ phoneNumber: z.string().optional().describe("Phone number for SMS/WhatsApp channels"),
1631
+ pageId: z.string().optional().describe("Facebook Page ID for Facebook Messenger"),
1632
+ routingType: z.enum(["Queue","Bot","None"]).default("Queue"),
1633
+ queueName: z.string().optional().describe("Queue DeveloperName to route work items to"),
1634
+ botName: z.string().optional().describe("Bot API name for bot-first routing"),
1635
+ description: z.string().optional(),
1636
+ }).strict();
1637
+ export const CreateChatButtonSchema = z.object({
1638
+ buttonName: z.string().min(1).max(80).describe("API name / DeveloperName of the chat button"),
1639
+ label: z.string().min(1).max(255),
1640
+ routingType: z.enum(["Queue","Bot"]).default("Queue"),
1641
+ queueName: z.string().optional().describe("Queue DeveloperName for queue-based routing"),
1642
+ botName: z.string().optional().describe("Bot name for bot-first routing"),
1643
+ windowLanguage: z.string().default("en").describe("Chat window language code, e.g. 'en', 'fr', 'de'"),
1644
+ inviteRenderer: z.string().optional().describe("Custom invite Visualforce page/LWC component name"),
1645
+ customAgentName: z.string().optional().describe("Agent display name shown in chat window"),
1646
+ optionsHasTimeoutAlert: z.boolean().default(false),
1647
+ description: z.string().optional(),
1648
+ }).strict();
1649
+ export const CreateEmbeddedServiceSchema = z.object({
1650
+ deploymentName: z.string().min(1).max(80).describe("API name of the Embedded Service deployment"),
1651
+ label: z.string().min(1).max(255),
1652
+ site: z.string().min(1).describe("Experience Cloud site name or 'none' for non-community deployment"),
1653
+ channelType: z.enum(["LiveAgent","MessagingChannel"]).default("LiveAgent"),
1654
+ chatButtonName: z.string().optional().describe("LiveChatButton API name (for LiveAgent)"),
1655
+ messagingChannelName: z.string().optional().describe("MessagingChannel API name (for MessagingChannel)"),
1656
+ primaryColor: z.string().optional().describe("Primary brand color hex, e.g. '#0070D2'"),
1657
+ secondaryColor: z.string().optional().describe("Secondary color hex"),
1658
+ fontName: z.string().optional().describe("Font family name, e.g. 'Salesforce Sans'"),
1659
+ description: z.string().optional(),
1660
+ }).strict();
1661
+ export const CreateBotRoutingSchema = z.object({
1662
+ botName: z.string().min(1).max(80).describe("Einstein Bot API name (DeveloperName of the BotVersion parent)"),
1663
+ transferToQueueName: z.string().min(1).describe("Queue DeveloperName to transfer conversation to"),
1664
+ transferMessage: z.string().optional().describe("Message shown to customer when transferring to agent"),
1665
+ escalationConditions: z.array(z.object({
1666
+ trigger: z.enum(["agentRequested","unrecognized","maxErrorCount","custom"]).describe("Trigger condition for escalation"),
1667
+ action: z.enum(["TransferToQueue","EndChat","SetVariable"]).default("TransferToQueue"),
1668
+ })).optional().describe("Conditions that trigger transfer to human agent"),
1669
+ }).strict();
1670
+ // ─── v2.4.0 — NEW TOOLS ──────────────────────────────────────────────────────
1671
+ export const CreateLightningAppPageSchema = z.object({
1672
+ pageName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("FlexiPage API name"),
1673
+ label: z.string().min(1).describe("Page display label"),
1674
+ template: z.string().default("AppDefaultTemplate").describe("Page template, e.g. AppDefaultTemplate, OneRegion, TwoColumn_LeftSidebar"),
1675
+ components: z.array(FlexiComponentSchema).optional().describe("Components to add to the page"),
1676
+ description: z.string().optional().describe("Page description"),
1677
+ }).strict();
1678
+ export const DeleteRecordSchema = z.object({
1679
+ objectApiName: z.string().min(1).describe("SObject API name, e.g. 'Account'"),
1680
+ recordId: z.string().min(15).max(18).describe("15 or 18 character Salesforce record ID"),
1681
+ }).strict();
1682
+ export const GetSetupAuditTrailSchema = z.object({
1683
+ startDate: z.string().describe("Start date in ISO format, e.g. '2025-01-01'"),
1684
+ endDate: z.string().describe("End date in ISO format, e.g. '2025-12-31'"),
1685
+ createdByUsername: z.string().optional().describe("Filter by the username who made the change"),
1686
+ section: z.string().optional().describe("Filter by section, e.g. 'Custom Fields', 'Profiles', 'Flows', 'Apex Classes'"),
1687
+ limit: z.number().int().min(1).max(2000).default(100).describe("Maximum records to return"),
1688
+ }).strict();
1689
+ export const GetLoginHistorySchema = z.object({
1690
+ startDate: z.string().describe("Start date in ISO format, e.g. '2025-01-01'"),
1691
+ endDate: z.string().describe("End date in ISO format, e.g. '2025-12-31'"),
1692
+ username: z.string().optional().describe("Filter by Salesforce username"),
1693
+ status: z.string().optional().describe("Filter by login status, e.g. 'Success', 'Failed'"),
1694
+ limit: z.number().int().min(1).max(2000).default(100).describe("Maximum records to return"),
1695
+ }).strict();
1696
+ export const GetEventLogsSchema = z.object({
1697
+ eventType: z.string().describe("Event type, e.g. 'Login', 'API', 'Report', 'Flow', 'ApexExecution', 'LightningPageView', 'RestApi'"),
1698
+ startDate: z.string().describe("Start date in ISO format, e.g. '2025-01-01'"),
1699
+ endDate: z.string().describe("End date in ISO format, e.g. '2025-12-31'"),
1700
+ limit: z.number().int().min(1).max(50).default(10).describe("Maximum log files to fetch"),
1701
+ }).strict();
1702
+ export const GetFieldHistorySchema = z.object({
1703
+ objectApiName: z.string().min(1).describe("Object API name, e.g. 'Account', 'Case', 'Opportunity'"),
1704
+ recordId: z.string().min(15).max(18).describe("Record ID to fetch history for"),
1705
+ fields: z.array(z.string()).optional().describe("Optional field names to filter — returns all tracked fields if omitted"),
1706
+ limit: z.number().int().min(1).max(500).default(100).describe("Maximum history records to return"),
1707
+ }).strict();
1708
+ export const CompareOrgsSchema = z.object({
1709
+ sourceAlias: z.string().min(1).regex(/^[A-Za-z0-9_-]+$/).describe("SF CLI alias for the source org (run: sf org list to see aliases)"),
1710
+ targetAlias: z.string().min(1).regex(/^[A-Za-z0-9_-]+$/).describe("SF CLI alias for the target org"),
1711
+ metadataTypes: z.array(z.string()).default(["ApexClass","Flow","CustomObject","PermissionSet","LightningComponentBundle"]).describe("Metadata types to compare"),
1712
+ }).strict();
1713
+ export const CreateCertificateSchema = z.object({
1714
+ certName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Certificate API name"),
1715
+ label: z.string().min(1).describe("Certificate display label"),
1716
+ keySize: z.enum(["2048","4096"]).default("2048").describe("Key size in bits"),
1717
+ expirationDate: z.string().optional().describe("Expiration date in ISO format, e.g. '2030-01-01'"),
1718
+ privateKeyExportable: z.boolean().default(false).describe("Whether the private key can be exported"),
1719
+ }).strict();
1720
+ export const CreateEventRelaySchema = z.object({
1721
+ relayName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Event relay API name"),
1722
+ label: z.string().min(1).describe("Display label"),
1723
+ eventChannel: z.string().min(1).describe("Platform event or CDC channel API name, e.g. 'My_Event__e' or 'AccountChangeEvent'"),
1724
+ destinationType: z.enum(["AmazonEventBridge","EventBus"]).describe("Destination type for the relay"),
1725
+ destinationResourceName: z.string().min(1).describe("ARN or event bus name for the destination"),
1726
+ state: z.enum(["RUN","STOP","PAUSE"]).default("RUN").describe("Initial relay state"),
1727
+ description: z.string().optional().describe("Relay description"),
1728
+ }).strict();
1729
+ export const CreateLetterheadSchema = z.object({
1730
+ letterheadName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Letterhead API name"),
1731
+ label: z.string().min(1).describe("Letterhead display name"),
1732
+ headerColor: z.string().default("#0070D2").describe("Header background color (hex)"),
1733
+ headerFontColor: z.string().default("#FFFFFF").describe("Header text color"),
1734
+ bodyColor: z.string().default("#FFFFFF").describe("Body background color"),
1735
+ footerColor: z.string().default("#404040").describe("Footer background color"),
1736
+ footerFontColor: z.string().default("#FFFFFF").describe("Footer text color"),
1737
+ fontName: z.string().default("Arial").describe("Font name, e.g. 'Arial', 'Helvetica', 'Times New Roman'"),
1738
+ fontSize: z.number().int().default(12).describe("Font size in points"),
1739
+ footerText: z.string().optional().describe("Footer text content"),
1740
+ topLineColor: z.string().default("#0070D2").describe("Top separator line color"),
1741
+ bottomLineColor: z.string().default("#0070D2").describe("Bottom separator line color"),
1742
+ }).strict();
1743
+ export const SendEmailSchema = z.object({
1744
+ toAddresses: z.array(z.string()).min(1).describe("Recipient email addresses"),
1745
+ subject: z.string().min(1).describe("Email subject line"),
1746
+ body: z.string().optional().describe("Plain text email body"),
1747
+ htmlBody: z.string().optional().describe("HTML email body (takes precedence over body)"),
1748
+ templateName: z.string().optional().describe("Email template API name (uses template instead of body)"),
1749
+ whatId: z.string().optional().describe("Related record ID (e.g. Opportunity or Case ID)"),
1750
+ whoId: z.string().optional().describe("Contact or Lead ID"),
1751
+ saveAsActivity: z.boolean().default(true).describe("Save email as an Activity record"),
1752
+ useSignature: z.boolean().default(false).describe("Append running user's email signature"),
1753
+ ccAddresses: z.array(z.string()).optional().describe("CC email addresses"),
1754
+ }).strict();
1755
+ export const CreateEinsteinPredictionSchema = z.object({
1756
+ predictionName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Prediction API name"),
1757
+ label: z.string().min(1).describe("Prediction display label"),
1758
+ objectApiName: z.string().min(1).describe("Salesforce object to run predictions on, e.g. 'Opportunity'"),
1759
+ predictionType: z.enum(["BinaryClassification","Regression"]).describe("BinaryClassification for yes/no, Regression for numeric"),
1760
+ targetField: z.string().min(1).describe("Field API name to predict"),
1761
+ positiveLabel: z.string().default("Yes").describe("Label for positive outcome (BinaryClassification only)"),
1762
+ negativeLabel: z.string().default("No").describe("Label for negative outcome (BinaryClassification only)"),
1763
+ pushbackField: z.string().optional().describe("Field to write the prediction score to, e.g. 'Win_Score__c'"),
1764
+ description: z.string().optional().describe("Prediction description"),
1765
+ }).strict();
1766
+ export const CreateNextBestActionSchema = z.object({
1767
+ strategyName: z.string().min(1).max(80).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Strategy API name"),
1768
+ label: z.string().min(1).describe("Strategy display label"),
1769
+ contextObjectApiName: z.string().min(1).describe("Object that provides context, e.g. 'Account', 'Case'"),
1770
+ recommendations: z.array(z.object({
1771
+ name: z.string().min(1).describe("Recommendation developer name"),
1772
+ label: z.string().min(1).describe("Label shown to users"),
1773
+ acceptanceLabel: z.string().default("Accept").describe("Accept button label"),
1774
+ rejectionLabel: z.string().default("Decline").describe("Reject button label"),
1775
+ actionReference: z.string().optional().describe("Flow API name to execute on acceptance"),
1776
+ })).optional().describe("Recommendation definitions"),
1777
+ description: z.string().optional().describe("Strategy description"),
1778
+ }).strict();
1779
+ export const CreateEinsteinBotSchema = z.object({
1780
+ botName: z.string().min(1).max(40).regex(/^[A-Za-z][A-Za-z0-9_]*$/).describe("Bot API name"),
1781
+ label: z.string().min(1).describe("Bot display label"),
1782
+ defaultLocale: z.string().default("en_US").describe("Default language/locale, e.g. 'en_US', 'fr', 'de'"),
1783
+ description: z.string().optional().describe("Bot description"),
1784
+ dialogs: z.array(z.object({
1785
+ name: z.string().min(1).describe("Dialog developer name"),
1786
+ label: z.string().min(1).describe("Dialog display label"),
1787
+ type: z.enum(["Main","System","Rule"]).default("Main").describe("Dialog type"),
1788
+ isGoalStep: z.boolean().default(false).describe("Whether this dialog represents goal completion"),
1789
+ utterances: z.array(z.string()).optional().describe("Training utterances that trigger this dialog"),
1790
+ messages: z.array(z.string()).optional().describe("Bot messages to show"),
1791
+ })).optional().describe("Bot dialogs"),
1415
1792
  }).strict();
1416
1793
  //# sourceMappingURL=index.js.map