@credal/actions 0.2.170 → 0.2.172
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/actionMapper.js +7 -89
- package/dist/actions/autogen/templates.d.ts +1 -14
- package/dist/actions/autogen/templates.js +152 -1189
- package/dist/actions/autogen/types.d.ts +161 -1308
- package/dist/actions/autogen/types.js +11 -356
- package/dist/actions/groups.js +1 -14
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +3 -0
- package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +43 -0
- package/dist/actions/providers/slack/archiveChannel.js +2 -9
- package/dist/actions/providers/slack/sendDmFromBot.d.ts +11 -0
- package/dist/actions/providers/slack/sendDmFromBot.js +86 -0
- package/package.json +1 -1
- package/dist/actions/providers/confluence/updatePage.d.ts +0 -3
- package/dist/actions/providers/confluence/updatePage.js +0 -47
- package/dist/actions/providers/jamf/types.d.ts +0 -8
- package/dist/actions/providers/jamf/types.js +0 -7
|
@@ -25,9 +25,7 @@ export var ProviderName;
|
|
|
25
25
|
ProviderName["GOOGLEOAUTH"] = "googleOauth";
|
|
26
26
|
ProviderName["GOOGLEMAIL"] = "googlemail";
|
|
27
27
|
ProviderName["GOOGLESEARCH"] = "googleSearch";
|
|
28
|
-
ProviderName["OKTA"] = "okta";
|
|
29
28
|
ProviderName["OKTAORG"] = "oktaOrg";
|
|
30
|
-
ProviderName["GONG"] = "gong";
|
|
31
29
|
ProviderName["FINNHUB"] = "finnhub";
|
|
32
30
|
ProviderName["LOOKER"] = "looker";
|
|
33
31
|
ProviderName["SALESFORCE"] = "salesforce";
|
|
@@ -230,6 +228,17 @@ export const asanaGetTasksDetailsOutputSchema = z.object({
|
|
|
230
228
|
.describe("The list of tasks that match search query")
|
|
231
229
|
.optional(),
|
|
232
230
|
});
|
|
231
|
+
export const slackSendDmFromBotParamsSchema = z.object({
|
|
232
|
+
email: z.string().describe("The email of the user to send the DM to"),
|
|
233
|
+
message: z.string().describe("The message content to send"),
|
|
234
|
+
});
|
|
235
|
+
export const slackSendDmFromBotOutputSchema = z.object({
|
|
236
|
+
success: z.boolean().describe("Whether the DM was sent successfully"),
|
|
237
|
+
error: z.string().describe("Error message if the operation failed").optional(),
|
|
238
|
+
channelId: z.string().describe("The ID of the DM channel").optional(),
|
|
239
|
+
timestamp: z.string().describe("The timestamp of the sent message").optional(),
|
|
240
|
+
permalink: z.string().describe("The permalink to the sent message").optional(),
|
|
241
|
+
});
|
|
233
242
|
export const slackCreateChannelParamsSchema = z.object({
|
|
234
243
|
channelName: z.string().describe("The name of the channel to create (without '#')"),
|
|
235
244
|
isPrivate: z.boolean().describe("Whether to create a private channel (defaults to false)").optional(),
|
|
@@ -3351,308 +3360,6 @@ export const googleSearchCustomSearchOutputSchema = z.object({
|
|
|
3351
3360
|
.optional(),
|
|
3352
3361
|
error: z.string().describe("Error message if search failed").optional(),
|
|
3353
3362
|
});
|
|
3354
|
-
export const oktaGetOktaUserParamsSchema = z.object({ userId: z.string().describe("The ID of the user to retrieve.") });
|
|
3355
|
-
export const oktaGetOktaUserOutputSchema = z.object({
|
|
3356
|
-
success: z.boolean().describe("Whether the user details were successfully retrieved."),
|
|
3357
|
-
user: z
|
|
3358
|
-
.object({
|
|
3359
|
-
id: z.string().describe("The user's Okta ID"),
|
|
3360
|
-
status: z.string().describe("The user's status").optional(),
|
|
3361
|
-
created: z.string().describe("The timestamp when the user was created").optional(),
|
|
3362
|
-
activated: z.string().describe("The timestamp when the user was activated").optional(),
|
|
3363
|
-
statusChanged: z.string().describe("The timestamp when the user's status changed").optional(),
|
|
3364
|
-
lastLogin: z.string().describe("The timestamp of the user's last login").optional(),
|
|
3365
|
-
lastUpdated: z.string().describe("The timestamp of the user's last update").optional(),
|
|
3366
|
-
passwordChanged: z.string().describe("The timestamp when the user's password was last changed").optional(),
|
|
3367
|
-
profile: z
|
|
3368
|
-
.object({
|
|
3369
|
-
login: z.string().describe("The user's login").optional(),
|
|
3370
|
-
firstName: z.string().describe("The user's first name").optional(),
|
|
3371
|
-
lastName: z.string().describe("The user's last name").optional(),
|
|
3372
|
-
nickName: z.string().describe("The user's nickname").optional(),
|
|
3373
|
-
displayName: z.string().describe("The user's display name").optional(),
|
|
3374
|
-
email: z.string().describe("The user's email address").optional(),
|
|
3375
|
-
secondEmail: z.string().describe("The user's secondary email address").optional(),
|
|
3376
|
-
profileUrl: z.string().describe("The URL to the user's profile").optional(),
|
|
3377
|
-
preferredLanguage: z.string().describe("The user's preferred language").optional(),
|
|
3378
|
-
userType: z.string().describe("The user's type").optional(),
|
|
3379
|
-
organization: z.string().describe("The user's organization").optional(),
|
|
3380
|
-
title: z.string().describe("The user's title").optional(),
|
|
3381
|
-
division: z.string().describe("The user's division").optional(),
|
|
3382
|
-
department: z.string().describe("The user's department").optional(),
|
|
3383
|
-
costCenter: z.string().describe("The user's cost center").optional(),
|
|
3384
|
-
employeeNumber: z.string().describe("The user's employee number").optional(),
|
|
3385
|
-
mobilePhone: z.string().describe("The user's mobile phone number").optional(),
|
|
3386
|
-
primaryPhone: z.string().describe("The user's primary phone number").optional(),
|
|
3387
|
-
streetAddress: z.string().describe("The user's street address").optional(),
|
|
3388
|
-
city: z.string().describe("The user's city").optional(),
|
|
3389
|
-
state: z.string().describe("The user's state").optional(),
|
|
3390
|
-
zipCode: z.string().describe("The user's zip code").optional(),
|
|
3391
|
-
countryCode: z.string().describe("The user's country code").optional(),
|
|
3392
|
-
})
|
|
3393
|
-
.describe("The user's profile information")
|
|
3394
|
-
.optional(),
|
|
3395
|
-
credentials: z.object({}).catchall(z.any()).describe("The user's credentials").optional(),
|
|
3396
|
-
_links: z.object({}).catchall(z.any()).describe("Links related to the user").optional(),
|
|
3397
|
-
})
|
|
3398
|
-
.optional(),
|
|
3399
|
-
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3400
|
-
});
|
|
3401
|
-
export const oktaListOktaUserGroupsParamsSchema = z.object({
|
|
3402
|
-
userId: z.string().describe("The ID of the user whose groups are to be listed."),
|
|
3403
|
-
maxResults: z.number().gte(1).describe("The maximum number of results to return.").optional(),
|
|
3404
|
-
});
|
|
3405
|
-
export const oktaListOktaUserGroupsOutputSchema = z.object({
|
|
3406
|
-
success: z.boolean().describe("Whether the groups were successfully retrieved."),
|
|
3407
|
-
groups: z
|
|
3408
|
-
.array(z.object({
|
|
3409
|
-
id: z.string().describe("The group's ID."),
|
|
3410
|
-
profile: z.object({
|
|
3411
|
-
name: z.string().describe("The group's name."),
|
|
3412
|
-
description: z.string().describe("The group's description."),
|
|
3413
|
-
}),
|
|
3414
|
-
}))
|
|
3415
|
-
.describe("List of groups the user belongs to.")
|
|
3416
|
-
.optional(),
|
|
3417
|
-
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3418
|
-
});
|
|
3419
|
-
export const oktaListOktaGroupsParamsSchema = z.object({
|
|
3420
|
-
searchQuery: z
|
|
3421
|
-
.string()
|
|
3422
|
-
.describe("Optional search query to filter groups.\nThis field corresponds to the `search` query parameter in the Okta API's List Groups operation.\nFor detailed information on constructing search queries and available filter expressions, refer to the Okta API documentation:\nhttps://developer.okta.com/docs/api/openapi/okta-management/management/tag/Group/#tag/Group/operation/listGroups!in=query&path=search&t=request\nExample: 'profile.name eq \"My Group\"'\n")
|
|
3423
|
-
.optional(),
|
|
3424
|
-
maxResults: z.number().gte(1).describe("The maximum number of results to return.").optional(),
|
|
3425
|
-
});
|
|
3426
|
-
export const oktaListOktaGroupsOutputSchema = z.object({
|
|
3427
|
-
success: z.boolean().describe("Whether the groups were successfully retrieved."),
|
|
3428
|
-
groups: z
|
|
3429
|
-
.array(z.object({
|
|
3430
|
-
id: z.string().describe("The group's ID."),
|
|
3431
|
-
profile: z.object({
|
|
3432
|
-
name: z.string().describe("The group's name."),
|
|
3433
|
-
description: z.string().describe("The group's description."),
|
|
3434
|
-
}),
|
|
3435
|
-
}))
|
|
3436
|
-
.describe("List of Okta groups.")
|
|
3437
|
-
.optional(),
|
|
3438
|
-
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3439
|
-
});
|
|
3440
|
-
export const oktaGetOktaGroupParamsSchema = z.object({
|
|
3441
|
-
groupId: z.string().describe("The ID of the group to retrieve."),
|
|
3442
|
-
});
|
|
3443
|
-
export const oktaGetOktaGroupOutputSchema = z.object({
|
|
3444
|
-
success: z.boolean().describe("Whether the group details were successfully retrieved."),
|
|
3445
|
-
group: z
|
|
3446
|
-
.object({
|
|
3447
|
-
id: z.string().describe("The unique identifier for the Okta group"),
|
|
3448
|
-
created: z.string().datetime({ offset: true }).describe("The timestamp when the group was created").optional(),
|
|
3449
|
-
lastUpdated: z
|
|
3450
|
-
.string()
|
|
3451
|
-
.datetime({ offset: true })
|
|
3452
|
-
.describe("The timestamp when the group was last updated")
|
|
3453
|
-
.optional(),
|
|
3454
|
-
lastMembershipUpdated: z
|
|
3455
|
-
.string()
|
|
3456
|
-
.datetime({ offset: true })
|
|
3457
|
-
.describe("The timestamp when the group's membership was last updated")
|
|
3458
|
-
.optional(),
|
|
3459
|
-
objectClass: z.array(z.string()).describe("The object class of the group").optional(),
|
|
3460
|
-
type: z.string().describe("The type of the group (e.g., OKTA_GROUP)").optional(),
|
|
3461
|
-
profile: z.object({
|
|
3462
|
-
name: z.string().describe("The name of the group"),
|
|
3463
|
-
description: z.string().describe("The description of the group"),
|
|
3464
|
-
}),
|
|
3465
|
-
_links: z
|
|
3466
|
-
.object({
|
|
3467
|
-
logo: z.array(z.object({}).catchall(z.any())).describe("Links to the group's logo").optional(),
|
|
3468
|
-
users: z
|
|
3469
|
-
.object({ href: z.string().describe("The URL to retrieve users in the group").optional() })
|
|
3470
|
-
.optional(),
|
|
3471
|
-
apps: z
|
|
3472
|
-
.object({ href: z.string().describe("The URL to retrieve apps associated with the group").optional() })
|
|
3473
|
-
.optional(),
|
|
3474
|
-
})
|
|
3475
|
-
.optional(),
|
|
3476
|
-
})
|
|
3477
|
-
.describe("Schema for an Okta group object")
|
|
3478
|
-
.optional(),
|
|
3479
|
-
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3480
|
-
});
|
|
3481
|
-
export const oktaListOktaGroupMembersParamsSchema = z.object({
|
|
3482
|
-
groupId: z.string().describe("The ID of the group whose members are to be listed."),
|
|
3483
|
-
maxResults: z.number().gte(1).describe("The maximum number of results to return.").optional(),
|
|
3484
|
-
});
|
|
3485
|
-
export const oktaListOktaGroupMembersOutputSchema = z.object({
|
|
3486
|
-
success: z.boolean().describe("Whether the members were successfully retrieved."),
|
|
3487
|
-
members: z
|
|
3488
|
-
.array(z.object({
|
|
3489
|
-
id: z.string().describe("The user's ID.").optional(),
|
|
3490
|
-
status: z.string().describe("The user's status.").optional(),
|
|
3491
|
-
created: z.string().datetime({ offset: true }).describe("The timestamp when the user was created.").optional(),
|
|
3492
|
-
activated: z
|
|
3493
|
-
.string()
|
|
3494
|
-
.datetime({ offset: true })
|
|
3495
|
-
.nullable()
|
|
3496
|
-
.describe("The timestamp when the user was activated.")
|
|
3497
|
-
.optional(),
|
|
3498
|
-
statusChanged: z
|
|
3499
|
-
.string()
|
|
3500
|
-
.datetime({ offset: true })
|
|
3501
|
-
.nullable()
|
|
3502
|
-
.describe("The timestamp when the user's status changed.")
|
|
3503
|
-
.optional(),
|
|
3504
|
-
lastLogin: z
|
|
3505
|
-
.string()
|
|
3506
|
-
.datetime({ offset: true })
|
|
3507
|
-
.nullable()
|
|
3508
|
-
.describe("The timestamp of the user's last login.")
|
|
3509
|
-
.optional(),
|
|
3510
|
-
lastUpdated: z
|
|
3511
|
-
.string()
|
|
3512
|
-
.datetime({ offset: true })
|
|
3513
|
-
.describe("The timestamp of the user's last update.")
|
|
3514
|
-
.optional(),
|
|
3515
|
-
passwordChanged: z
|
|
3516
|
-
.string()
|
|
3517
|
-
.datetime({ offset: true })
|
|
3518
|
-
.describe("The timestamp when the user's password was last changed.")
|
|
3519
|
-
.optional(),
|
|
3520
|
-
type: z.object({ id: z.string().describe("The type ID of the user.").optional() }).optional(),
|
|
3521
|
-
profile: z
|
|
3522
|
-
.object({
|
|
3523
|
-
firstName: z.string().describe("The user's first name.").optional(),
|
|
3524
|
-
lastName: z.string().describe("The user's last name.").optional(),
|
|
3525
|
-
mobilePhone: z.string().nullable().describe("The user's mobile phone number.").optional(),
|
|
3526
|
-
secondEmail: z.string().nullable().describe("The user's secondary email address.").optional(),
|
|
3527
|
-
login: z.string().describe("The user's login.").optional(),
|
|
3528
|
-
email: z.string().describe("The user's email address.").optional(),
|
|
3529
|
-
})
|
|
3530
|
-
.describe("The user's profile information.")
|
|
3531
|
-
.optional(),
|
|
3532
|
-
}))
|
|
3533
|
-
.describe("List of members in the group.")
|
|
3534
|
-
.optional(),
|
|
3535
|
-
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3536
|
-
});
|
|
3537
|
-
export const oktaAddUserToGroupParamsSchema = z.object({
|
|
3538
|
-
groupId: z.string().describe("The ID of the group to add the user to."),
|
|
3539
|
-
userId: z.string().describe("The ID of the user to add to the group."),
|
|
3540
|
-
});
|
|
3541
|
-
export const oktaAddUserToGroupOutputSchema = z.object({
|
|
3542
|
-
success: z.boolean().describe("Whether the user was successfully added to the group."),
|
|
3543
|
-
error: z.string().describe("Error message if the operation failed.").optional(),
|
|
3544
|
-
});
|
|
3545
|
-
export const oktaRemoveUserFromGroupParamsSchema = z.object({
|
|
3546
|
-
groupId: z.string().describe("The ID of the group to remove the user from."),
|
|
3547
|
-
userId: z.string().describe("The ID of the user to remove from the group."),
|
|
3548
|
-
});
|
|
3549
|
-
export const oktaRemoveUserFromGroupOutputSchema = z.object({
|
|
3550
|
-
success: z.boolean().describe("Whether the user was successfully removed from the group."),
|
|
3551
|
-
error: z.string().describe("Error message if the operation failed.").optional(),
|
|
3552
|
-
});
|
|
3553
|
-
export const oktaListOktaUsersParamsSchema = z.object({
|
|
3554
|
-
searchQuery: z
|
|
3555
|
-
.string()
|
|
3556
|
-
.describe("Optional search query to filter users.\nThis field corresponds to the `search` query parameter in the Okta API's List Users operation.\nFor detailed information on constructing search queries and available filter expressions, refer to the Okta API documentation:\nhttps://developer.okta.com/docs/api/openapi/okta-management/management/tag/User/#tag/User/operation/listUsers!in=query&path=search&t=request\nExample: 'profile.email eq \"my_user@example.com\"'\n")
|
|
3557
|
-
.optional(),
|
|
3558
|
-
maxResults: z.number().gte(1).describe("The maximum number of results to return.").optional(),
|
|
3559
|
-
});
|
|
3560
|
-
export const oktaListOktaUsersOutputSchema = z.object({
|
|
3561
|
-
success: z.boolean().describe("Whether the user list was successfully retrieved"),
|
|
3562
|
-
users: z
|
|
3563
|
-
.array(z.object({
|
|
3564
|
-
id: z.string().describe("The user's Okta ID"),
|
|
3565
|
-
status: z.string().describe("The user's status").optional(),
|
|
3566
|
-
created: z.string().describe("The timestamp when the user was created").optional(),
|
|
3567
|
-
activated: z.string().nullable().describe("The timestamp when the user was activated").optional(),
|
|
3568
|
-
statusChanged: z.string().nullable().describe("The timestamp when the user's status changed").optional(),
|
|
3569
|
-
lastLogin: z.string().nullable().describe("The timestamp of the user's last login").optional(),
|
|
3570
|
-
lastUpdated: z.string().describe("The timestamp of the user's last update").optional(),
|
|
3571
|
-
passwordChanged: z.string().describe("The timestamp when the user's password was last changed").optional(),
|
|
3572
|
-
type: z.object({ id: z.string().describe("The type ID of the user").optional() }).optional(),
|
|
3573
|
-
profile: z.object({
|
|
3574
|
-
firstName: z.string().describe("The user's first name").optional(),
|
|
3575
|
-
lastName: z.string().describe("The user's last name").optional(),
|
|
3576
|
-
mobilePhone: z.string().nullable().describe("The user's mobile phone number").optional(),
|
|
3577
|
-
secondEmail: z.string().nullable().describe("The user's secondary email address").optional(),
|
|
3578
|
-
login: z.string().describe("The user's login").optional(),
|
|
3579
|
-
email: z.string().describe("The user's email address").optional(),
|
|
3580
|
-
}),
|
|
3581
|
-
realmId: z.string().describe("The realm ID of the user").optional(),
|
|
3582
|
-
}))
|
|
3583
|
-
.describe("List of Okta users matching the query")
|
|
3584
|
-
.optional(),
|
|
3585
|
-
error: z.string().describe("Error message if user retrieval failed").optional(),
|
|
3586
|
-
});
|
|
3587
|
-
export const oktaResetMFAParamsSchema = z.object({
|
|
3588
|
-
userId: z.string().describe("The ID of the user whose MFA needs to be reset."),
|
|
3589
|
-
factorId: z
|
|
3590
|
-
.string()
|
|
3591
|
-
.describe("Optional. The ID of the specific factor to reset. If not provided, all factors will be reset.")
|
|
3592
|
-
.optional(),
|
|
3593
|
-
});
|
|
3594
|
-
export const oktaResetMFAOutputSchema = z.object({
|
|
3595
|
-
success: z.boolean().describe("Whether the MFA reset was successful."),
|
|
3596
|
-
error: z.string().describe("Error message if the MFA reset failed.").optional(),
|
|
3597
|
-
});
|
|
3598
|
-
export const oktaListMFAParamsSchema = z.object({
|
|
3599
|
-
userId: z.string().describe("The ID of the user whose MFA factors need to be listed."),
|
|
3600
|
-
});
|
|
3601
|
-
export const oktaListMFAOutputSchema = z.object({
|
|
3602
|
-
success: z.boolean().describe("Whether the MFA factors were successfully retrieved."),
|
|
3603
|
-
factors: z
|
|
3604
|
-
.array(z.object({
|
|
3605
|
-
id: z.string().describe("The ID of the MFA factor."),
|
|
3606
|
-
factorType: z
|
|
3607
|
-
.string()
|
|
3608
|
-
.describe("The type of the MFA factor (e.g., question, sms, token:software:totp).")
|
|
3609
|
-
.optional(),
|
|
3610
|
-
provider: z.string().describe("The provider of the MFA factor (e.g., OKTA).").optional(),
|
|
3611
|
-
vendorName: z.string().describe("The vendor name of the MFA factor.").optional(),
|
|
3612
|
-
status: z.string().describe("The status of the MFA factor (e.g., ACTIVE, PENDING_ACTIVATION).").optional(),
|
|
3613
|
-
created: z.string().describe("The timestamp when the MFA factor was created.").optional(),
|
|
3614
|
-
lastUpdated: z.string().describe("The timestamp when the MFA factor was last updated.").optional(),
|
|
3615
|
-
profile: z
|
|
3616
|
-
.object({})
|
|
3617
|
-
.catchall(z.any())
|
|
3618
|
-
.describe("Additional profile information for the MFA factor.")
|
|
3619
|
-
.optional(),
|
|
3620
|
-
_links: z.object({}).catchall(z.any()).describe("Links related to the MFA factor.").optional(),
|
|
3621
|
-
_embedded: z
|
|
3622
|
-
.object({})
|
|
3623
|
-
.catchall(z.any())
|
|
3624
|
-
.describe("Embedded data for the MFA factor (e.g., activation details).")
|
|
3625
|
-
.optional(),
|
|
3626
|
-
}))
|
|
3627
|
-
.describe("List of MFA factors for the user.")
|
|
3628
|
-
.optional(),
|
|
3629
|
-
error: z.string().describe("Error message if the MFA factors could not be retrieved.").optional(),
|
|
3630
|
-
});
|
|
3631
|
-
export const oktaResetPasswordParamsSchema = z.object({
|
|
3632
|
-
userId: z.string().describe("The ID of the user whose password needs to be reset."),
|
|
3633
|
-
sendEmail: z.boolean().describe("Whether to send a password reset email to the user."),
|
|
3634
|
-
revokeSessions: z
|
|
3635
|
-
.boolean()
|
|
3636
|
-
.describe("Whether to revoke all active sessions for the user after the password reset.")
|
|
3637
|
-
.optional(),
|
|
3638
|
-
});
|
|
3639
|
-
export const oktaResetPasswordOutputSchema = z.object({
|
|
3640
|
-
success: z.boolean().describe("Whether the password reset was successful."),
|
|
3641
|
-
error: z.string().describe("Error message if the password reset failed.").optional(),
|
|
3642
|
-
resetPasswordUrl: z.string().describe("The URL for resetting the password manually.").optional(),
|
|
3643
|
-
});
|
|
3644
|
-
export const oktaTriggerOktaWorkflowParamsSchema = z.object({
|
|
3645
|
-
workflowId: z.string().describe("The unique ID of the workflow"),
|
|
3646
|
-
workflowParameters: z
|
|
3647
|
-
.record(z.string())
|
|
3648
|
-
.describe("A key,value pair where the keys are the input variables the values are the values of those fields.")
|
|
3649
|
-
.optional(),
|
|
3650
|
-
});
|
|
3651
|
-
export const oktaTriggerOktaWorkflowOutputSchema = z.object({
|
|
3652
|
-
success: z.boolean().describe("Whether the workflow was successfully triggered."),
|
|
3653
|
-
output: z.object({}).catchall(z.any()).describe("The output of the triggered workflow, if applicable.").optional(),
|
|
3654
|
-
error: z.string().describe("Error message if the workflow trigger failed.").optional(),
|
|
3655
|
-
});
|
|
3656
3363
|
export const oktaOrgGetOktaUserByNameParamsSchema = z.object({
|
|
3657
3364
|
name: z.string().describe("The name of the user to retrieve."),
|
|
3658
3365
|
});
|
|
@@ -3669,50 +3376,6 @@ export const oktaOrgGetOktaUserByNameOutputSchema = z.object({
|
|
|
3669
3376
|
.optional(),
|
|
3670
3377
|
error: z.string().describe("Error message if retrieval failed.").optional(),
|
|
3671
3378
|
});
|
|
3672
|
-
export const gongGetGongTranscriptsParamsSchema = z.object({
|
|
3673
|
-
userRole: z.string().describe("The role of users whose transcripts are being fetched"),
|
|
3674
|
-
trackers: z
|
|
3675
|
-
.array(z.string().describe("The names of the trackers to fetch transcripts for"))
|
|
3676
|
-
.describe("The trackers to fetch transcripts for")
|
|
3677
|
-
.optional(),
|
|
3678
|
-
company: z.string().describe("The company to get calls with").optional(),
|
|
3679
|
-
startDate: z.string().describe("The start date of the transcripts to fetch in ISO 8601 format").optional(),
|
|
3680
|
-
endDate: z.string().describe("The end date of the transcripts to fetch in ISO 8601 format").optional(),
|
|
3681
|
-
});
|
|
3682
|
-
export const gongGetGongTranscriptsOutputSchema = z.object({
|
|
3683
|
-
success: z.boolean().describe("Whether the transcripts were fetched successfully"),
|
|
3684
|
-
callTranscripts: z
|
|
3685
|
-
.array(z
|
|
3686
|
-
.object({
|
|
3687
|
-
callId: z.string().describe("The ID of the call").optional(),
|
|
3688
|
-
callName: z.string().describe("The name of the call").optional(),
|
|
3689
|
-
startTime: z.string().describe("The start time of the call in ISO 8601 format").optional(),
|
|
3690
|
-
transcript: z
|
|
3691
|
-
.array(z
|
|
3692
|
-
.object({
|
|
3693
|
-
speakerName: z.string().describe("The name of the speaker").optional(),
|
|
3694
|
-
speakerEmail: z.string().describe("The email of the speaker").optional(),
|
|
3695
|
-
topic: z.string().nullable().describe("The topic of the transcript").optional(),
|
|
3696
|
-
sentences: z
|
|
3697
|
-
.array(z
|
|
3698
|
-
.object({
|
|
3699
|
-
start: z.number().describe("The start time of the sentence in seconds").optional(),
|
|
3700
|
-
end: z.number().describe("The end time of the sentence in seconds").optional(),
|
|
3701
|
-
text: z.string().describe("The text of the sentence").optional(),
|
|
3702
|
-
})
|
|
3703
|
-
.describe("A sentence"))
|
|
3704
|
-
.describe("The sentences in the transcript")
|
|
3705
|
-
.optional(),
|
|
3706
|
-
})
|
|
3707
|
-
.describe("A transcript"))
|
|
3708
|
-
.describe("The transcript")
|
|
3709
|
-
.optional(),
|
|
3710
|
-
})
|
|
3711
|
-
.describe("A transcript"))
|
|
3712
|
-
.describe("The transcripts fetched")
|
|
3713
|
-
.optional(),
|
|
3714
|
-
error: z.string().describe("The error that occurred if the transcripts weren't fetched successfully").optional(),
|
|
3715
|
-
});
|
|
3716
3379
|
export const finnhubSymbolLookupParamsSchema = z.object({
|
|
3717
3380
|
query: z.string().describe("The symbol or colloquial name of the company to look up"),
|
|
3718
3381
|
});
|
|
@@ -3925,14 +3588,6 @@ export const salesforceGetRecordOutputSchema = z.object({
|
|
|
3925
3588
|
record: z.record(z.string()).describe("The retrieved record data").optional(),
|
|
3926
3589
|
error: z.string().describe("The error that occurred if the record was not successfully retrieved").optional(),
|
|
3927
3590
|
});
|
|
3928
|
-
export const salesforceFetchSalesforceSchemaByObjectParamsSchema = z.object({
|
|
3929
|
-
objectType: z.string().describe("The Salesforce object type to fetch the schema for (e.g., Lead, Account, Contact)"),
|
|
3930
|
-
});
|
|
3931
|
-
export const salesforceFetchSalesforceSchemaByObjectOutputSchema = z.object({
|
|
3932
|
-
success: z.boolean().describe("Whether the schema was successfully retrieved"),
|
|
3933
|
-
schema: z.record(z.string()).describe("The retrieved schema data").optional(),
|
|
3934
|
-
error: z.string().describe("The error that occurred if the schema was not successfully retrieved").optional(),
|
|
3935
|
-
});
|
|
3936
3591
|
export const microsoftCreateDocumentParamsSchema = z.object({
|
|
3937
3592
|
siteId: z.string().describe("The ID of the site where the document will be created").optional(),
|
|
3938
3593
|
name: z.string().describe("The name of the new document (include extension like .docx or .xlsx)"),
|
package/dist/actions/groups.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { genericFillTemplateDefinition, confluenceOverwritePageDefinition, googlemapsValidateAddressDefinition, mathAddDefinition, mongoInsertMongoDocDefinition, slackSendMessageDefinition, slackGetChannelMessagesDefinition, slackCreateChannelDefinition, slackArchiveChannelDefinition, snowflakeGetRowByFieldValueDefinition, zendeskCreateZendeskTicketDefinition, zendeskListZendeskTicketsDefinition, zendeskGetTicketDetailsDefinition, zendeskUpdateTicketStatusDefinition, zendeskAddCommentToTicketDefinition, zendeskAssignTicketDefinition, openstreetmapGetLatitudeLongitudeFromLocationDefinition, nwsGetForecastForLocationDefinition, jiraAssignJiraTicketDefinition, jiraCommentJiraTicketDefinition, jiraCreateJiraTicketDefinition, jiraGetJiraTicketDetailsDefinition, jiraGetJiraTicketHistoryDefinition, jiraUpdateJiraTicketDetailsDefinition, jiraUpdateJiraTicketStatusDefinition, jiraGetServiceDesksDefinition, jiraCreateServiceDeskRequestDefinition, googlemapsNearbysearchRestaurantsDefinition, firecrawlScrapeUrlDefinition, resendSendEmailDefinition, linkedinCreateShareLinkedinPostUrlDefinition, googleOauthCreateNewGoogleDocDefinition, xCreateShareXPostUrlDefinition, firecrawlScrapeTweetDataWithNitterDefinition, finnhubSymbolLookupDefinition, finnhubGetBasicFinancialsDefinition, confluenceFetchPageContentDefinition, snowflakeRunSnowflakeQueryDefinition, lookerEnableUserByEmailDefinition, googleOauthUpdateDocDefinition, googleOauthScheduleCalendarMeetingDefinition, googleOauthListCalendarsDefinition, googleOauthListCalendarEventsDefinition, googleOauthUpdateCalendarEventDefinition, googleOauthDeleteCalendarEventDefinition, googleOauthCreateSpreadsheetDefinition, googleOauthUpdateSpreadsheetDefinition, googleOauthCreatePresentationDefinition, googleOauthUpdatePresentationDefinition, googleOauthSearchDriveByKeywordsDefinition, googlemailSearchGmailMessagesDefinition, googlemailListGmailThreadsDefinition, googleOauthListGroupsDefinition, googleOauthGetGroupDefinition, googleOauthListGroupMembersDefinition, googleOauthHasGroupMemberDefinition, googleOauthAddGroupMemberDefinition, googleOauthDeleteGroupMemberDefinition, salesforceUpdateRecordDefinition, salesforceCreateCaseDefinition, salesforceGenerateSalesReportDefinition, salesforceGetRecordDefinition, salesforceGetSalesforceRecordsByQueryDefinition, microsoftMessageTeamsChatDefinition, microsoftMessageTeamsChannelDefinition, asanaCommentTaskDefinition, asanaCreateTaskDefinition, asanaUpdateTaskDefinition, asanaSearchTasksDefinition, githubCreateOrUpdateFileDefinition, githubCreateBranchDefinition, githubCreatePullRequestDefinition, microsoftUpdateSpreadsheetDefinition, microsoftUpdateDocumentDefinition, microsoftCreateDocumentDefinition, microsoftGetDocumentDefinition, salesforceFetchSalesforceSchemaByObjectDefinition, firecrawlDeepResearchDefinition, jiraGetJiraIssuesByQueryDefinition, githubListPullRequestsDefinition, salesforceCreateRecordDefinition, ashbyCreateNoteDefinition, ashbyGetCandidateInfoDefinition, ashbyListCandidatesDefinition, ashbyListCandidateNotesDefinition, ashbySearchCandidatesDefinition, ashbyCreateCandidateDefinition, ashbyUpdateCandidateDefinition, ashbyAddCandidateToProjectDefinition, bingGetTopNSearchResultUrlsDefinition, gongGetGongTranscriptsDefinition, kandjiGetFVRecoveryKeyForDeviceDefinition, asanaListAsanaTasksByProjectDefinition, notionSearchByTitleDefinition, asanaGetTasksDetailsDefinition,
|
|
1
|
+
import { genericFillTemplateDefinition, confluenceOverwritePageDefinition, googlemapsValidateAddressDefinition, mathAddDefinition, mongoInsertMongoDocDefinition, slackSendMessageDefinition, slackGetChannelMessagesDefinition, slackCreateChannelDefinition, slackArchiveChannelDefinition, snowflakeGetRowByFieldValueDefinition, zendeskCreateZendeskTicketDefinition, zendeskListZendeskTicketsDefinition, zendeskGetTicketDetailsDefinition, zendeskUpdateTicketStatusDefinition, zendeskAddCommentToTicketDefinition, zendeskAssignTicketDefinition, openstreetmapGetLatitudeLongitudeFromLocationDefinition, nwsGetForecastForLocationDefinition, jiraAssignJiraTicketDefinition, jiraCommentJiraTicketDefinition, jiraCreateJiraTicketDefinition, jiraGetJiraTicketDetailsDefinition, jiraGetJiraTicketHistoryDefinition, jiraUpdateJiraTicketDetailsDefinition, jiraUpdateJiraTicketStatusDefinition, jiraGetServiceDesksDefinition, jiraCreateServiceDeskRequestDefinition, googlemapsNearbysearchRestaurantsDefinition, firecrawlScrapeUrlDefinition, resendSendEmailDefinition, linkedinCreateShareLinkedinPostUrlDefinition, googleOauthCreateNewGoogleDocDefinition, xCreateShareXPostUrlDefinition, firecrawlScrapeTweetDataWithNitterDefinition, finnhubSymbolLookupDefinition, finnhubGetBasicFinancialsDefinition, confluenceFetchPageContentDefinition, snowflakeRunSnowflakeQueryDefinition, lookerEnableUserByEmailDefinition, googleOauthUpdateDocDefinition, googleOauthScheduleCalendarMeetingDefinition, googleOauthListCalendarsDefinition, googleOauthListCalendarEventsDefinition, googleOauthUpdateCalendarEventDefinition, googleOauthDeleteCalendarEventDefinition, googleOauthCreateSpreadsheetDefinition, googleOauthUpdateSpreadsheetDefinition, googleOauthCreatePresentationDefinition, googleOauthUpdatePresentationDefinition, googleOauthSearchDriveByKeywordsDefinition, googlemailSearchGmailMessagesDefinition, googlemailListGmailThreadsDefinition, googleOauthListGroupsDefinition, googleOauthGetGroupDefinition, googleOauthListGroupMembersDefinition, googleOauthHasGroupMemberDefinition, googleOauthAddGroupMemberDefinition, googleOauthDeleteGroupMemberDefinition, salesforceUpdateRecordDefinition, salesforceCreateCaseDefinition, salesforceGenerateSalesReportDefinition, salesforceGetRecordDefinition, salesforceGetSalesforceRecordsByQueryDefinition, microsoftMessageTeamsChatDefinition, microsoftMessageTeamsChannelDefinition, asanaCommentTaskDefinition, asanaCreateTaskDefinition, asanaUpdateTaskDefinition, asanaSearchTasksDefinition, githubCreateOrUpdateFileDefinition, githubCreateBranchDefinition, githubCreatePullRequestDefinition, microsoftUpdateSpreadsheetDefinition, microsoftUpdateDocumentDefinition, microsoftCreateDocumentDefinition, microsoftGetDocumentDefinition, salesforceFetchSalesforceSchemaByObjectDefinition, firecrawlDeepResearchDefinition, jiraGetJiraIssuesByQueryDefinition, githubListPullRequestsDefinition, salesforceCreateRecordDefinition, ashbyCreateNoteDefinition, ashbyGetCandidateInfoDefinition, ashbyListCandidatesDefinition, ashbyListCandidateNotesDefinition, ashbySearchCandidatesDefinition, ashbyCreateCandidateDefinition, ashbyUpdateCandidateDefinition, ashbyAddCandidateToProjectDefinition, bingGetTopNSearchResultUrlsDefinition, gongGetGongTranscriptsDefinition, kandjiGetFVRecoveryKeyForDeviceDefinition, asanaListAsanaTasksByProjectDefinition, notionSearchByTitleDefinition, asanaGetTasksDetailsDefinition, jamfGetJamfComputerInventoryDefinition, jamfGetJamfFileVaultRecoveryKeyDefinition, oktaListOktaUsersDefinition, oktaGetOktaUserDefinition, oktaListOktaUserGroupsDefinition, oktaListOktaGroupsDefinition, oktaGetOktaGroupDefinition, oktaListOktaGroupMembersDefinition, oktaRemoveUserFromGroupDefinition, oktaAddUserToGroupDefinition, oktaResetPasswordDefinition, oktaResetMFADefinition, oktaListMFADefinition, jamfGetJamfUserComputerIdDefinition, jamfLockJamfComputerByIdDefinition, oktaTriggerOktaWorkflowDefinition, jiraOrgAssignJiraTicketDefinition, jiraOrgCreateJiraTicketDefinition, jiraOrgCommentJiraTicketDefinition, jiraOrgGetJiraTicketDetailsDefinition, jiraOrgGetJiraTicketHistoryDefinition, jiraOrgUpdateJiraTicketDetailsDefinition, jiraOrgUpdateJiraTicketStatusDefinition, jiraOrgGetJiraIssuesByQueryDefinition, googleOauthGetDriveFileContentByIdDefinition, googleOauthSearchDriveByQueryDefinition, } from "./autogen/templates.js";
|
|
2
2
|
export const ACTION_GROUPS = {
|
|
3
3
|
GENERIC: {
|
|
4
4
|
description: "Generic utility actions",
|
|
@@ -47,7 +47,6 @@ export const ACTION_GROUPS = {
|
|
|
47
47
|
googleOauthUpdatePresentationDefinition,
|
|
48
48
|
googleOauthSearchDriveByKeywordsDefinition,
|
|
49
49
|
googleOauthSearchDriveByQueryDefinition,
|
|
50
|
-
googleOauthSearchDriveByQueryAndGetFileContentDefinition,
|
|
51
50
|
googleOauthGetDriveFileContentByIdDefinition,
|
|
52
51
|
],
|
|
53
52
|
},
|
|
@@ -199,8 +198,6 @@ export const ACTION_GROUPS = {
|
|
|
199
198
|
githubCreateBranchDefinition,
|
|
200
199
|
githubCreatePullRequestDefinition,
|
|
201
200
|
githubListPullRequestsDefinition,
|
|
202
|
-
githubGetFileContentDefinition,
|
|
203
|
-
githubListDirectoryDefinition,
|
|
204
201
|
],
|
|
205
202
|
},
|
|
206
203
|
ASHBY: {
|
|
@@ -248,14 +245,4 @@ export const ACTION_GROUPS = {
|
|
|
248
245
|
oktaTriggerOktaWorkflowDefinition,
|
|
249
246
|
],
|
|
250
247
|
},
|
|
251
|
-
LINEAR: {
|
|
252
|
-
description: "Actions for interacting with Linear",
|
|
253
|
-
actions: [
|
|
254
|
-
linearGetIssueDetailsDefinition,
|
|
255
|
-
linearGetProjectsDefinition,
|
|
256
|
-
linearGetProjectDetailsDefinition,
|
|
257
|
-
linearGetTeamDetailsDefinition,
|
|
258
|
-
linearGetTeamsDefinition,
|
|
259
|
-
],
|
|
260
|
-
},
|
|
261
248
|
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const axiosClient_1 = require("../../util/axiosClient");
|
|
13
|
+
const getSalesforceRecordByQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
|
14
|
+
const { authToken, baseUrl } = authParams;
|
|
15
|
+
const { query, limit } = params;
|
|
16
|
+
if (!authToken || !baseUrl) {
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
error: "authToken and baseUrl are required for Salesforce API",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// The API limits the maximum number of records returned to 2000, the limit lets the user set a smaller custom limit
|
|
23
|
+
const url = `${baseUrl}/services/data/v56.0/query/?q=${encodeURIComponent(query + " LIMIT " + (limit != undefined && limit <= 2000 ? limit : 2000))}`;
|
|
24
|
+
try {
|
|
25
|
+
const response = yield axiosClient_1.axiosClient.get(url, {
|
|
26
|
+
headers: {
|
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
success: true,
|
|
32
|
+
records: response.data,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error("Error retrieving Salesforce record:", error);
|
|
37
|
+
return {
|
|
38
|
+
success: false,
|
|
39
|
+
error: error instanceof Error ? error.message : "An unknown error occurred",
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
exports.default = getSalesforceRecordByQuery;
|
|
@@ -9,21 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { WebClient } from "@slack/web-api";
|
|
11
11
|
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
-
import { getSlackChannels } from "./helpers.js";
|
|
13
12
|
const archiveChannel = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
|
14
13
|
if (!authParams.authToken) {
|
|
15
14
|
throw new Error(MISSING_AUTH_TOKEN);
|
|
16
15
|
}
|
|
17
16
|
try {
|
|
18
17
|
const client = new WebClient(authParams.authToken);
|
|
19
|
-
const {
|
|
20
|
-
const
|
|
21
|
-
const channel = allChannels.find(channel => channel.name == channelName);
|
|
22
|
-
if (!channel || !channel.id) {
|
|
23
|
-
throw Error(`Channel with name ${channelName} not found`);
|
|
24
|
-
}
|
|
25
|
-
yield client.conversations.join({ channel: channel.id });
|
|
26
|
-
const result = yield client.conversations.archive({ channel: channel.id });
|
|
18
|
+
const { channelId } = params;
|
|
19
|
+
const result = yield client.conversations.archive({ channel: channelId });
|
|
27
20
|
if (!result.ok) {
|
|
28
21
|
return {
|
|
29
22
|
success: false,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type slackSendDmFromBotFunction } from "../../autogen/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Sends a direct message to a user on Slack.
|
|
4
|
+
*
|
|
5
|
+
* This action:
|
|
6
|
+
* 1. Looks up the user by email using users.lookupByEmail
|
|
7
|
+
* 2. Opens a DM channel with conversations.open (or uses existing)
|
|
8
|
+
* 3. Posts the message using chat.postMessage
|
|
9
|
+
*/
|
|
10
|
+
declare const sendDmFromBot: slackSendDmFromBotFunction;
|
|
11
|
+
export default sendDmFromBot;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { WebClient } from "@slack/web-api";
|
|
11
|
+
import { MISSING_AUTH_TOKEN } from "../../util/missingAuthConstants.js";
|
|
12
|
+
/**
|
|
13
|
+
* Sends a direct message to a user on Slack.
|
|
14
|
+
*
|
|
15
|
+
* This action:
|
|
16
|
+
* 1. Looks up the user by email using users.lookupByEmail
|
|
17
|
+
* 2. Opens a DM channel with conversations.open (or uses existing)
|
|
18
|
+
* 3. Posts the message using chat.postMessage
|
|
19
|
+
*/
|
|
20
|
+
const sendDmFromBot = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
|
21
|
+
var _b, _c;
|
|
22
|
+
if (!authParams.authToken)
|
|
23
|
+
throw new Error(MISSING_AUTH_TOKEN);
|
|
24
|
+
const client = new WebClient(authParams.authToken);
|
|
25
|
+
const { email, message } = params;
|
|
26
|
+
try {
|
|
27
|
+
// Step 1: Look up user by email
|
|
28
|
+
const userLookup = yield client.users.lookupByEmail({ email });
|
|
29
|
+
const userId = (_b = userLookup.user) === null || _b === void 0 ? void 0 : _b.id;
|
|
30
|
+
if (!userId) {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
error: `User not found with email: ${email}`,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Step 2: Open DM conversation (or get existing one)
|
|
37
|
+
const conversationOpen = yield client.conversations.open({
|
|
38
|
+
users: userId,
|
|
39
|
+
});
|
|
40
|
+
const channelId = (_c = conversationOpen.channel) === null || _c === void 0 ? void 0 : _c.id;
|
|
41
|
+
if (!channelId) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: "Failed to open DM conversation",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// Step 3: Send the message
|
|
48
|
+
const result = yield client.chat.postMessage({
|
|
49
|
+
channel: channelId,
|
|
50
|
+
text: message,
|
|
51
|
+
});
|
|
52
|
+
if (!result.ok) {
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: result.error || "Failed to send message",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Get permalink for the sent message
|
|
59
|
+
let permalink;
|
|
60
|
+
if (result.ts) {
|
|
61
|
+
try {
|
|
62
|
+
const permalinkResult = yield client.chat.getPermalink({
|
|
63
|
+
channel: channelId,
|
|
64
|
+
message_ts: result.ts,
|
|
65
|
+
});
|
|
66
|
+
permalink = permalinkResult.permalink;
|
|
67
|
+
}
|
|
68
|
+
catch (_d) {
|
|
69
|
+
// Permalink fetch failed, but message was sent successfully
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
success: true,
|
|
74
|
+
channelId,
|
|
75
|
+
timestamp: result.ts,
|
|
76
|
+
permalink,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
return {
|
|
81
|
+
success: false,
|
|
82
|
+
error: error instanceof Error ? error.message : "Unknown error occurred",
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
export default sendDmFromBot;
|
package/package.json
CHANGED