@credal/actions 0.1.64 → 0.1.65
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 +8 -0
- package/dist/actions/autogen/templates.d.ts +1 -0
- package/dist/actions/autogen/templates.js +49 -2
- package/dist/actions/autogen/types.d.ts +40 -2
- package/dist/actions/autogen/types.js +19 -3
- package/dist/actions/groups.js +4 -0
- package/dist/actions/providers/bing/getTopNSearchResultUrls.d.ts +3 -0
- package/dist/actions/providers/bing/getTopNSearchResultUrls.js +48 -0
- package/dist/actions/providers/jamf/getComputerInventory.d.ts +3 -0
- package/dist/actions/providers/jamf/getComputerInventory.js +45 -0
- package/dist/actions/providers/jamf/getFileVaultRecoveryKey.d.ts +3 -0
- package/dist/actions/providers/jamf/getFileVaultRecoveryKey.js +40 -0
- package/package.json +1 -1
- package/dist/actions/providers/confluence/updatePage.d.ts +0 -3
- package/dist/actions/providers/confluence/updatePage.js +0 -46
- package/dist/actions/providers/generic/fillTemplateAction.d.ts +0 -7
- package/dist/actions/providers/generic/fillTemplateAction.js +0 -18
- package/dist/actions/providers/generic/genericApiCall.d.ts +0 -3
- package/dist/actions/providers/generic/genericApiCall.js +0 -38
- package/dist/actions/providers/googlemaps/nearbysearch.d.ts +0 -3
- package/dist/actions/providers/googlemaps/nearbysearch.js +0 -96
- package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.d.ts +0 -3
- package/dist/actions/providers/snowflake/runSnowflakeQueryWriteResultsToS3.js +0 -154
- package/dist/actions/providers/x/scrapeTweetDataWithNitter.d.ts +0 -3
- package/dist/actions/providers/x/scrapeTweetDataWithNitter.js +0 -45
@@ -78,6 +78,7 @@ const deepResearch_1 = __importDefault(require("./providers/firecrawl/deepResear
|
|
78
78
|
const listPullRequests_1 = __importDefault(require("./providers/github/listPullRequests"));
|
79
79
|
const getJiraIssuesByQuery_1 = __importDefault(require("./providers/jira/getJiraIssuesByQuery"));
|
80
80
|
const createRecord_1 = __importDefault(require("./providers/salesforce/createRecord"));
|
81
|
+
const getTopNSearchResultUrls_1 = __importDefault(require("./providers/bing/getTopNSearchResultUrls"));
|
81
82
|
exports.ActionMapper = {
|
82
83
|
generic: {
|
83
84
|
fillTemplate: {
|
@@ -158,6 +159,13 @@ exports.ActionMapper = {
|
|
158
159
|
outputSchema: types_1.credalCallCopilotOutputSchema,
|
159
160
|
},
|
160
161
|
},
|
162
|
+
bing: {
|
163
|
+
getTopNSearchResultUrls: {
|
164
|
+
fn: getTopNSearchResultUrls_1.default,
|
165
|
+
paramsSchema: types_1.bingGetTopNSearchResultUrlsParamsSchema,
|
166
|
+
outputSchema: types_1.bingGetTopNSearchResultUrlsOutputSchema,
|
167
|
+
},
|
168
|
+
},
|
161
169
|
zendesk: {
|
162
170
|
createZendeskTicket: {
|
163
171
|
fn: createZendeskTicket_1.default,
|
@@ -19,6 +19,7 @@ export declare const jiraUpdateJiraTicketStatusDefinition: ActionTemplate;
|
|
19
19
|
export declare const jiraGetJiraIssuesByQueryDefinition: ActionTemplate;
|
20
20
|
export declare const googlemapsValidateAddressDefinition: ActionTemplate;
|
21
21
|
export declare const googlemapsNearbysearchRestaurantsDefinition: ActionTemplate;
|
22
|
+
export declare const bingGetTopNSearchResultUrlsDefinition: ActionTemplate;
|
22
23
|
export declare const credalCallCopilotDefinition: ActionTemplate;
|
23
24
|
export declare const zendeskCreateZendeskTicketDefinition: ActionTemplate;
|
24
25
|
export declare const zendeskListZendeskTicketsDefinition: ActionTemplate;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
exports.githubListPullRequestsDefinition = exports.githubCreatePullRequestDefinition = exports.githubCreateBranchDefinition = exports.githubCreateOrUpdateFileDefinition = exports.microsoftGetDocumentDefinition = exports.microsoftMessageTeamsChannelDefinition = exports.microsoftMessageTeamsChatDefinition = exports.microsoftUpdateSpreadsheetDefinition = exports.microsoftUpdateDocumentDefinition = exports.microsoftCreateDocumentDefinition = exports.salesforceFetchSalesforceSchemaByObjectDefinition = exports.salesforceGetRecordDefinition = exports.salesforceGetSalesforceRecordsByQueryDefinition = exports.salesforceGenerateSalesReportDefinition = exports.salesforceCreateCaseDefinition = exports.salesforceCreateRecordDefinition = exports.salesforceUpdateRecordDefinition = exports.ashbyUpdateCandidateDefinition = exports.ashbyCreateCandidateDefinition = exports.ashbyListCandidateNotesDefinition = exports.ashbySearchCandidatesDefinition = exports.ashbyListCandidatesDefinition = exports.ashbyAddCandidateToProjectDefinition = void 0;
|
3
|
+
exports.ashbyCreateNoteDefinition = exports.lookerEnableUserByEmailDefinition = exports.finnhubGetBasicFinancialsDefinition = exports.finnhubSymbolLookupDefinition = exports.googleOauthUpdatePresentationDefinition = exports.googleOauthCreatePresentationDefinition = exports.googleOauthUpdateSpreadsheetDefinition = exports.googleOauthCreateSpreadsheetDefinition = exports.googleOauthScheduleCalendarMeetingDefinition = exports.googleOauthUpdateDocDefinition = exports.googleOauthCreateNewGoogleDocDefinition = exports.resendSendEmailDefinition = exports.firecrawlScrapeTweetDataWithNitterDefinition = exports.firecrawlScrapeUrlDefinition = exports.firecrawlDeepResearchDefinition = exports.nwsGetForecastForLocationDefinition = exports.openstreetmapGetLatitudeLongitudeFromLocationDefinition = exports.snowflakeRunSnowflakeQueryDefinition = exports.snowflakeGetRowByFieldValueDefinition = exports.mongoInsertMongoDocDefinition = exports.xCreateShareXPostUrlDefinition = exports.linkedinCreateShareLinkedinPostUrlDefinition = exports.zendeskAssignTicketDefinition = exports.zendeskAddCommentToTicketDefinition = exports.zendeskUpdateTicketStatusDefinition = exports.zendeskGetTicketDetailsDefinition = exports.zendeskListZendeskTicketsDefinition = exports.zendeskCreateZendeskTicketDefinition = exports.credalCallCopilotDefinition = exports.bingGetTopNSearchResultUrlsDefinition = exports.googlemapsNearbysearchRestaurantsDefinition = exports.googlemapsValidateAddressDefinition = exports.jiraGetJiraIssuesByQueryDefinition = exports.jiraUpdateJiraTicketStatusDefinition = exports.jiraUpdateJiraTicketDetailsDefinition = exports.jiraGetJiraTicketHistoryDefinition = exports.jiraGetJiraTicketDetailsDefinition = exports.jiraCreateJiraTicketDefinition = exports.jiraCommentJiraTicketDefinition = exports.jiraAssignJiraTicketDefinition = exports.confluenceFetchPageContentDefinition = exports.confluenceOverwritePageDefinition = exports.mathAddDefinition = exports.slackGetChannelMessagesDefinition = exports.slackListConversationsDefinition = exports.slackSendMessageDefinition = exports.asanaUpdateTaskDefinition = exports.asanaCreateTaskDefinition = exports.asanaCommentTaskDefinition = exports.genericFillTemplateDefinition = void 0;
|
4
|
+
exports.githubListPullRequestsDefinition = exports.githubCreatePullRequestDefinition = exports.githubCreateBranchDefinition = exports.githubCreateOrUpdateFileDefinition = exports.microsoftGetDocumentDefinition = exports.microsoftMessageTeamsChannelDefinition = exports.microsoftMessageTeamsChatDefinition = exports.microsoftUpdateSpreadsheetDefinition = exports.microsoftUpdateDocumentDefinition = exports.microsoftCreateDocumentDefinition = exports.salesforceFetchSalesforceSchemaByObjectDefinition = exports.salesforceGetRecordDefinition = exports.salesforceGetSalesforceRecordsByQueryDefinition = exports.salesforceGenerateSalesReportDefinition = exports.salesforceCreateCaseDefinition = exports.salesforceCreateRecordDefinition = exports.salesforceUpdateRecordDefinition = exports.ashbyUpdateCandidateDefinition = exports.ashbyCreateCandidateDefinition = exports.ashbyListCandidateNotesDefinition = exports.ashbySearchCandidatesDefinition = exports.ashbyListCandidatesDefinition = exports.ashbyAddCandidateToProjectDefinition = exports.ashbyGetCandidateInfoDefinition = void 0;
|
5
5
|
exports.genericFillTemplateDefinition = {
|
6
6
|
description: "Simple utility that takes a template and returns it filled in",
|
7
7
|
scopes: [],
|
@@ -985,6 +985,53 @@ exports.googlemapsNearbysearchRestaurantsDefinition = {
|
|
985
985
|
name: "nearbysearchRestaurants",
|
986
986
|
provider: "googlemaps",
|
987
987
|
};
|
988
|
+
exports.bingGetTopNSearchResultUrlsDefinition = {
|
989
|
+
description: "Get the top five search result URLs from Bing",
|
990
|
+
scopes: [],
|
991
|
+
parameters: {
|
992
|
+
type: "object",
|
993
|
+
required: ["query"],
|
994
|
+
properties: {
|
995
|
+
query: {
|
996
|
+
type: "string",
|
997
|
+
description: "The query to search for",
|
998
|
+
},
|
999
|
+
count: {
|
1000
|
+
type: "number",
|
1001
|
+
description: "The number of results to return. Default is 5.",
|
1002
|
+
},
|
1003
|
+
site: {
|
1004
|
+
type: "string",
|
1005
|
+
description: "The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com",
|
1006
|
+
},
|
1007
|
+
},
|
1008
|
+
},
|
1009
|
+
output: {
|
1010
|
+
type: "object",
|
1011
|
+
required: ["results"],
|
1012
|
+
properties: {
|
1013
|
+
results: {
|
1014
|
+
type: "array",
|
1015
|
+
description: "The top five search result objects",
|
1016
|
+
items: {
|
1017
|
+
type: "object",
|
1018
|
+
properties: {
|
1019
|
+
name: {
|
1020
|
+
type: "string",
|
1021
|
+
description: "The name or title of the search result",
|
1022
|
+
},
|
1023
|
+
url: {
|
1024
|
+
type: "string",
|
1025
|
+
description: "The URL of the search result",
|
1026
|
+
},
|
1027
|
+
},
|
1028
|
+
},
|
1029
|
+
},
|
1030
|
+
},
|
1031
|
+
},
|
1032
|
+
name: "getTopNSearchResultUrls",
|
1033
|
+
provider: "bing",
|
1034
|
+
};
|
988
1035
|
exports.credalCallCopilotDefinition = {
|
989
1036
|
description: "Call Credal Copilot for response on a given query",
|
990
1037
|
scopes: [],
|
@@ -874,6 +874,44 @@ export declare const googlemapsNearbysearchRestaurantsOutputSchema: z.ZodObject<
|
|
874
874
|
}>;
|
875
875
|
export type googlemapsNearbysearchRestaurantsOutputType = z.infer<typeof googlemapsNearbysearchRestaurantsOutputSchema>;
|
876
876
|
export type googlemapsNearbysearchRestaurantsFunction = ActionFunction<googlemapsNearbysearchRestaurantsParamsType, AuthParamsType, googlemapsNearbysearchRestaurantsOutputType>;
|
877
|
+
export declare const bingGetTopNSearchResultUrlsParamsSchema: z.ZodObject<{
|
878
|
+
query: z.ZodString;
|
879
|
+
count: z.ZodOptional<z.ZodNumber>;
|
880
|
+
site: z.ZodOptional<z.ZodString>;
|
881
|
+
}, "strip", z.ZodTypeAny, {
|
882
|
+
query: string;
|
883
|
+
count?: number | undefined;
|
884
|
+
site?: string | undefined;
|
885
|
+
}, {
|
886
|
+
query: string;
|
887
|
+
count?: number | undefined;
|
888
|
+
site?: string | undefined;
|
889
|
+
}>;
|
890
|
+
export type bingGetTopNSearchResultUrlsParamsType = z.infer<typeof bingGetTopNSearchResultUrlsParamsSchema>;
|
891
|
+
export declare const bingGetTopNSearchResultUrlsOutputSchema: z.ZodObject<{
|
892
|
+
results: z.ZodArray<z.ZodObject<{
|
893
|
+
name: z.ZodOptional<z.ZodString>;
|
894
|
+
url: z.ZodOptional<z.ZodString>;
|
895
|
+
}, "strip", z.ZodTypeAny, {
|
896
|
+
name?: string | undefined;
|
897
|
+
url?: string | undefined;
|
898
|
+
}, {
|
899
|
+
name?: string | undefined;
|
900
|
+
url?: string | undefined;
|
901
|
+
}>, "many">;
|
902
|
+
}, "strip", z.ZodTypeAny, {
|
903
|
+
results: {
|
904
|
+
name?: string | undefined;
|
905
|
+
url?: string | undefined;
|
906
|
+
}[];
|
907
|
+
}, {
|
908
|
+
results: {
|
909
|
+
name?: string | undefined;
|
910
|
+
url?: string | undefined;
|
911
|
+
}[];
|
912
|
+
}>;
|
913
|
+
export type bingGetTopNSearchResultUrlsOutputType = z.infer<typeof bingGetTopNSearchResultUrlsOutputSchema>;
|
914
|
+
export type bingGetTopNSearchResultUrlsFunction = ActionFunction<bingGetTopNSearchResultUrlsParamsType, AuthParamsType, bingGetTopNSearchResultUrlsOutputType>;
|
877
915
|
export declare const credalCallCopilotParamsSchema: z.ZodObject<{
|
878
916
|
agentId: z.ZodString;
|
879
917
|
query: z.ZodString;
|
@@ -1059,11 +1097,11 @@ export declare const zendeskListZendeskTicketsOutputSchema: z.ZodObject<{
|
|
1059
1097
|
tickets: z.ZodArray<z.ZodObject<{}, "strip", z.ZodAny, z.objectOutputType<{}, z.ZodAny, "strip">, z.objectInputType<{}, z.ZodAny, "strip">>, "many">;
|
1060
1098
|
count: z.ZodNumber;
|
1061
1099
|
}, "strip", z.ZodTypeAny, {
|
1062
|
-
tickets: z.objectOutputType<{}, z.ZodAny, "strip">[];
|
1063
1100
|
count: number;
|
1101
|
+
tickets: z.objectOutputType<{}, z.ZodAny, "strip">[];
|
1064
1102
|
}, {
|
1065
|
-
tickets: z.objectInputType<{}, z.ZodAny, "strip">[];
|
1066
1103
|
count: number;
|
1104
|
+
tickets: z.objectInputType<{}, z.ZodAny, "strip">[];
|
1067
1105
|
}>;
|
1068
1106
|
export type zendeskListZendeskTicketsOutputType = z.infer<typeof zendeskListZendeskTicketsOutputSchema>;
|
1069
1107
|
export type zendeskListZendeskTicketsFunction = ActionFunction<zendeskListZendeskTicketsParamsType, AuthParamsType, zendeskListZendeskTicketsOutputType>;
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
exports.
|
5
|
-
exports.githubListPullRequestsOutputSchema = exports.githubListPullRequestsParamsSchema = exports.githubCreatePullRequestOutputSchema = exports.githubCreatePullRequestParamsSchema = exports.githubCreateBranchOutputSchema = exports.githubCreateBranchParamsSchema = exports.githubCreateOrUpdateFileOutputSchema = exports.githubCreateOrUpdateFileParamsSchema = exports.microsoftGetDocumentOutputSchema = exports.microsoftGetDocumentParamsSchema = exports.microsoftMessageTeamsChannelOutputSchema = exports.microsoftMessageTeamsChannelParamsSchema = exports.microsoftMessageTeamsChatOutputSchema = exports.microsoftMessageTeamsChatParamsSchema = exports.microsoftUpdateSpreadsheetOutputSchema = exports.microsoftUpdateSpreadsheetParamsSchema = exports.microsoftUpdateDocumentOutputSchema = exports.microsoftUpdateDocumentParamsSchema = exports.microsoftCreateDocumentOutputSchema = exports.microsoftCreateDocumentParamsSchema = exports.salesforceFetchSalesforceSchemaByObjectOutputSchema = exports.salesforceFetchSalesforceSchemaByObjectParamsSchema = exports.salesforceGetRecordOutputSchema = exports.salesforceGetRecordParamsSchema = exports.salesforceGetSalesforceRecordsByQueryOutputSchema = exports.salesforceGetSalesforceRecordsByQueryParamsSchema = exports.salesforceGenerateSalesReportOutputSchema = exports.salesforceGenerateSalesReportParamsSchema = exports.salesforceCreateCaseOutputSchema = exports.salesforceCreateCaseParamsSchema = exports.salesforceCreateRecordOutputSchema = exports.salesforceCreateRecordParamsSchema = exports.salesforceUpdateRecordOutputSchema = exports.salesforceUpdateRecordParamsSchema = exports.ashbyUpdateCandidateOutputSchema = exports.ashbyUpdateCandidateParamsSchema = exports.ashbyCreateCandidateOutputSchema = exports.ashbyCreateCandidateParamsSchema = exports.ashbyListCandidateNotesOutputSchema = exports.ashbyListCandidateNotesParamsSchema = exports.ashbySearchCandidatesOutputSchema = exports.ashbySearchCandidatesParamsSchema = exports.ashbyListCandidatesOutputSchema = exports.ashbyListCandidatesParamsSchema = exports.ashbyAddCandidateToProjectOutputSchema = exports.ashbyAddCandidateToProjectParamsSchema = exports.ashbyGetCandidateInfoOutputSchema = void 0;
|
3
|
+
exports.zendeskGetTicketDetailsParamsSchema = exports.zendeskListZendeskTicketsOutputSchema = exports.zendeskListZendeskTicketsParamsSchema = exports.zendeskCreateZendeskTicketOutputSchema = exports.zendeskCreateZendeskTicketParamsSchema = exports.credalCallCopilotOutputSchema = exports.credalCallCopilotParamsSchema = exports.bingGetTopNSearchResultUrlsOutputSchema = exports.bingGetTopNSearchResultUrlsParamsSchema = exports.googlemapsNearbysearchRestaurantsOutputSchema = exports.googlemapsNearbysearchRestaurantsParamsSchema = exports.googlemapsValidateAddressOutputSchema = exports.googlemapsValidateAddressParamsSchema = exports.jiraGetJiraIssuesByQueryOutputSchema = exports.jiraGetJiraIssuesByQueryParamsSchema = exports.jiraUpdateJiraTicketStatusOutputSchema = exports.jiraUpdateJiraTicketStatusParamsSchema = exports.jiraUpdateJiraTicketDetailsOutputSchema = exports.jiraUpdateJiraTicketDetailsParamsSchema = exports.jiraGetJiraTicketHistoryOutputSchema = exports.jiraGetJiraTicketHistoryParamsSchema = exports.jiraGetJiraTicketDetailsOutputSchema = exports.jiraGetJiraTicketDetailsParamsSchema = exports.jiraCreateJiraTicketOutputSchema = exports.jiraCreateJiraTicketParamsSchema = exports.jiraCommentJiraTicketOutputSchema = exports.jiraCommentJiraTicketParamsSchema = exports.jiraAssignJiraTicketOutputSchema = exports.jiraAssignJiraTicketParamsSchema = exports.confluenceFetchPageContentOutputSchema = exports.confluenceFetchPageContentParamsSchema = exports.confluenceOverwritePageOutputSchema = exports.confluenceOverwritePageParamsSchema = exports.mathAddOutputSchema = exports.mathAddParamsSchema = exports.slackGetChannelMessagesOutputSchema = exports.slackGetChannelMessagesParamsSchema = exports.slackListConversationsOutputSchema = exports.slackListConversationsParamsSchema = exports.slackSendMessageOutputSchema = exports.slackSendMessageParamsSchema = exports.asanaUpdateTaskOutputSchema = exports.asanaUpdateTaskParamsSchema = exports.asanaCreateTaskOutputSchema = exports.asanaCreateTaskParamsSchema = exports.asanaCommentTaskOutputSchema = exports.asanaCommentTaskParamsSchema = exports.genericFillTemplateOutputSchema = exports.genericFillTemplateParamsSchema = exports.AuthParamsSchema = void 0;
|
4
|
+
exports.ashbyCreateNoteParamsSchema = exports.lookerEnableUserByEmailOutputSchema = exports.lookerEnableUserByEmailParamsSchema = exports.finnhubGetBasicFinancialsOutputSchema = exports.finnhubGetBasicFinancialsParamsSchema = exports.finnhubSymbolLookupOutputSchema = exports.finnhubSymbolLookupParamsSchema = exports.googleOauthUpdatePresentationOutputSchema = exports.googleOauthUpdatePresentationParamsSchema = exports.googleOauthCreatePresentationOutputSchema = exports.googleOauthCreatePresentationParamsSchema = exports.googleOauthUpdateSpreadsheetOutputSchema = exports.googleOauthUpdateSpreadsheetParamsSchema = exports.googleOauthCreateSpreadsheetOutputSchema = exports.googleOauthCreateSpreadsheetParamsSchema = exports.googleOauthScheduleCalendarMeetingOutputSchema = exports.googleOauthScheduleCalendarMeetingParamsSchema = exports.googleOauthUpdateDocOutputSchema = exports.googleOauthUpdateDocParamsSchema = exports.googleOauthCreateNewGoogleDocOutputSchema = exports.googleOauthCreateNewGoogleDocParamsSchema = exports.resendSendEmailOutputSchema = exports.resendSendEmailParamsSchema = exports.firecrawlScrapeTweetDataWithNitterOutputSchema = exports.firecrawlScrapeTweetDataWithNitterParamsSchema = exports.firecrawlScrapeUrlOutputSchema = exports.firecrawlScrapeUrlParamsSchema = exports.firecrawlDeepResearchOutputSchema = exports.firecrawlDeepResearchParamsSchema = exports.nwsGetForecastForLocationOutputSchema = exports.nwsGetForecastForLocationParamsSchema = exports.openstreetmapGetLatitudeLongitudeFromLocationOutputSchema = exports.openstreetmapGetLatitudeLongitudeFromLocationParamsSchema = exports.snowflakeRunSnowflakeQueryOutputSchema = exports.snowflakeRunSnowflakeQueryParamsSchema = exports.snowflakeGetRowByFieldValueOutputSchema = exports.snowflakeGetRowByFieldValueParamsSchema = exports.mongoInsertMongoDocOutputSchema = exports.mongoInsertMongoDocParamsSchema = exports.xCreateShareXPostUrlOutputSchema = exports.xCreateShareXPostUrlParamsSchema = exports.linkedinCreateShareLinkedinPostUrlOutputSchema = exports.linkedinCreateShareLinkedinPostUrlParamsSchema = exports.zendeskAssignTicketOutputSchema = exports.zendeskAssignTicketParamsSchema = exports.zendeskAddCommentToTicketOutputSchema = exports.zendeskAddCommentToTicketParamsSchema = exports.zendeskUpdateTicketStatusOutputSchema = exports.zendeskUpdateTicketStatusParamsSchema = exports.zendeskGetTicketDetailsOutputSchema = void 0;
|
5
|
+
exports.githubListPullRequestsOutputSchema = exports.githubListPullRequestsParamsSchema = exports.githubCreatePullRequestOutputSchema = exports.githubCreatePullRequestParamsSchema = exports.githubCreateBranchOutputSchema = exports.githubCreateBranchParamsSchema = exports.githubCreateOrUpdateFileOutputSchema = exports.githubCreateOrUpdateFileParamsSchema = exports.microsoftGetDocumentOutputSchema = exports.microsoftGetDocumentParamsSchema = exports.microsoftMessageTeamsChannelOutputSchema = exports.microsoftMessageTeamsChannelParamsSchema = exports.microsoftMessageTeamsChatOutputSchema = exports.microsoftMessageTeamsChatParamsSchema = exports.microsoftUpdateSpreadsheetOutputSchema = exports.microsoftUpdateSpreadsheetParamsSchema = exports.microsoftUpdateDocumentOutputSchema = exports.microsoftUpdateDocumentParamsSchema = exports.microsoftCreateDocumentOutputSchema = exports.microsoftCreateDocumentParamsSchema = exports.salesforceFetchSalesforceSchemaByObjectOutputSchema = exports.salesforceFetchSalesforceSchemaByObjectParamsSchema = exports.salesforceGetRecordOutputSchema = exports.salesforceGetRecordParamsSchema = exports.salesforceGetSalesforceRecordsByQueryOutputSchema = exports.salesforceGetSalesforceRecordsByQueryParamsSchema = exports.salesforceGenerateSalesReportOutputSchema = exports.salesforceGenerateSalesReportParamsSchema = exports.salesforceCreateCaseOutputSchema = exports.salesforceCreateCaseParamsSchema = exports.salesforceCreateRecordOutputSchema = exports.salesforceCreateRecordParamsSchema = exports.salesforceUpdateRecordOutputSchema = exports.salesforceUpdateRecordParamsSchema = exports.ashbyUpdateCandidateOutputSchema = exports.ashbyUpdateCandidateParamsSchema = exports.ashbyCreateCandidateOutputSchema = exports.ashbyCreateCandidateParamsSchema = exports.ashbyListCandidateNotesOutputSchema = exports.ashbyListCandidateNotesParamsSchema = exports.ashbySearchCandidatesOutputSchema = exports.ashbySearchCandidatesParamsSchema = exports.ashbyListCandidatesOutputSchema = exports.ashbyListCandidatesParamsSchema = exports.ashbyAddCandidateToProjectOutputSchema = exports.ashbyAddCandidateToProjectParamsSchema = exports.ashbyGetCandidateInfoOutputSchema = exports.ashbyGetCandidateInfoParamsSchema = exports.ashbyCreateNoteOutputSchema = void 0;
|
6
6
|
const zod_1 = require("zod");
|
7
7
|
exports.AuthParamsSchema = zod_1.z.object({
|
8
8
|
authToken: zod_1.z.string().optional(),
|
@@ -300,6 +300,22 @@ exports.googlemapsNearbysearchRestaurantsOutputSchema = zod_1.z.object({
|
|
300
300
|
}))
|
301
301
|
.describe("The results of the nearby search"),
|
302
302
|
});
|
303
|
+
exports.bingGetTopNSearchResultUrlsParamsSchema = zod_1.z.object({
|
304
|
+
query: zod_1.z.string().describe("The query to search for"),
|
305
|
+
count: zod_1.z.number().describe("The number of results to return. Default is 5.").optional(),
|
306
|
+
site: zod_1.z
|
307
|
+
.string()
|
308
|
+
.describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
|
309
|
+
.optional(),
|
310
|
+
});
|
311
|
+
exports.bingGetTopNSearchResultUrlsOutputSchema = zod_1.z.object({
|
312
|
+
results: zod_1.z
|
313
|
+
.array(zod_1.z.object({
|
314
|
+
name: zod_1.z.string().describe("The name or title of the search result").optional(),
|
315
|
+
url: zod_1.z.string().describe("The URL of the search result").optional(),
|
316
|
+
}))
|
317
|
+
.describe("The top N search result objects"),
|
318
|
+
});
|
303
319
|
exports.credalCallCopilotParamsSchema = zod_1.z.object({
|
304
320
|
agentId: zod_1.z.string().describe("The ID of the copilot to call"),
|
305
321
|
query: zod_1.z.string().describe("The query to ask Credal Copilot"),
|
package/dist/actions/groups.js
CHANGED
@@ -61,6 +61,10 @@ exports.ACTION_GROUPS = {
|
|
61
61
|
templates_1.zendeskAssignTicketDefinition,
|
62
62
|
],
|
63
63
|
},
|
64
|
+
BING_SEARCH: {
|
65
|
+
description: "Action for searching Bing",
|
66
|
+
actions: [templates_1.bingGetTopNSearchResultUrlsDefinition],
|
67
|
+
},
|
64
68
|
MONGO_INSERT_DOC: {
|
65
69
|
description: "Action for inserting a document into a MongoDB collection",
|
66
70
|
actions: [templates_1.mongoInsertMongoDocDefinition],
|
@@ -0,0 +1,48 @@
|
|
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 types_1 = require("../../autogen/types");
|
13
|
+
const axiosClient_1 = require("../../util/axiosClient");
|
14
|
+
const getTopNSearchResultUrls = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
15
|
+
var _b;
|
16
|
+
const { query, count = 5, site } = params;
|
17
|
+
const { apiKey } = authParams;
|
18
|
+
// Build the search query
|
19
|
+
const searchQuery = `${query}${site ? ` site:${site}` : ""}`;
|
20
|
+
// Ensure we have an API key
|
21
|
+
if (!apiKey) {
|
22
|
+
throw new Error("Missing Bing API key in auth parameters");
|
23
|
+
}
|
24
|
+
try {
|
25
|
+
// Call Bing Search API
|
26
|
+
const response = yield axiosClient_1.axiosClient.get("https://api.bing.microsoft.com/v7.0/search", {
|
27
|
+
params: {
|
28
|
+
q: searchQuery,
|
29
|
+
count: count,
|
30
|
+
responseFilter: "Webpages",
|
31
|
+
mkt: "en-US",
|
32
|
+
},
|
33
|
+
headers: {
|
34
|
+
"Ocp-Apim-Subscription-Key": apiKey,
|
35
|
+
},
|
36
|
+
});
|
37
|
+
// Extract URLs and names from search results
|
38
|
+
const searchResults = ((_b = response.data.webPages) === null || _b === void 0 ? void 0 : _b.value) || [];
|
39
|
+
return types_1.bingGetTopNSearchResultUrlsOutputSchema.parse({
|
40
|
+
results: searchResults,
|
41
|
+
});
|
42
|
+
}
|
43
|
+
catch (error) {
|
44
|
+
console.error("Error fetching search results from Bing:", error);
|
45
|
+
throw error;
|
46
|
+
}
|
47
|
+
});
|
48
|
+
exports.default = getTopNSearchResultUrls;
|
@@ -0,0 +1,45 @@
|
|
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 getComputerInventory = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
const { section } = params;
|
16
|
+
if (!baseUrl) {
|
17
|
+
throw new Error("Base URL is required to fetch computer inventory");
|
18
|
+
}
|
19
|
+
const apiUrl = `${baseUrl}/v1/computer-inventory`;
|
20
|
+
const queryParams = {};
|
21
|
+
if (section) {
|
22
|
+
queryParams.section = section;
|
23
|
+
}
|
24
|
+
try {
|
25
|
+
const response = yield axiosClient_1.axiosClient.get(apiUrl, {
|
26
|
+
headers: {
|
27
|
+
Authorization: `Bearer ${authToken}`,
|
28
|
+
Accept: "application/json",
|
29
|
+
},
|
30
|
+
params: queryParams,
|
31
|
+
});
|
32
|
+
return {
|
33
|
+
success: true,
|
34
|
+
data: response.data,
|
35
|
+
};
|
36
|
+
}
|
37
|
+
catch (error) {
|
38
|
+
console.error("Error retrieving computer inventory: ", error);
|
39
|
+
return {
|
40
|
+
success: false,
|
41
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
42
|
+
};
|
43
|
+
}
|
44
|
+
});
|
45
|
+
exports.default = getComputerInventory;
|
@@ -0,0 +1,40 @@
|
|
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 getFileVaultRecoveryKey = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
14
|
+
const { authToken, baseUrl } = authParams;
|
15
|
+
const { computerId } = params;
|
16
|
+
if (!baseUrl || !computerId) {
|
17
|
+
throw new Error("Base URL and Computer ID are required to fetch FileVault2 recovery key");
|
18
|
+
}
|
19
|
+
const apiUrl = `${baseUrl}/JSSResource/computers/${computerId}/FileVault2RecoveryKey`;
|
20
|
+
try {
|
21
|
+
const response = yield axiosClient_1.axiosClient.get(apiUrl, {
|
22
|
+
headers: {
|
23
|
+
Authorization: `Bearer ${authToken}`,
|
24
|
+
Accept: "application/json",
|
25
|
+
},
|
26
|
+
});
|
27
|
+
return {
|
28
|
+
success: true,
|
29
|
+
data: response.data,
|
30
|
+
};
|
31
|
+
}
|
32
|
+
catch (error) {
|
33
|
+
console.error("Error retrieving FileVault2 recovery key: ", error);
|
34
|
+
return {
|
35
|
+
success: false,
|
36
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
37
|
+
};
|
38
|
+
}
|
39
|
+
});
|
40
|
+
exports.default = getFileVaultRecoveryKey;
|
package/package.json
CHANGED
@@ -1,46 +0,0 @@
|
|
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
|
-
function getConfluenceRequestConfig(baseUrl, username, apiToken) {
|
14
|
-
return {
|
15
|
-
baseURL: baseUrl,
|
16
|
-
headers: {
|
17
|
-
Accept: "application/json",
|
18
|
-
Authorization: `Basic ${Buffer.from(`${username}:${apiToken}`).toString("base64")}`,
|
19
|
-
},
|
20
|
-
};
|
21
|
-
}
|
22
|
-
const confluenceUpdatePage = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
23
|
-
const { pageId, content, title } = params;
|
24
|
-
const { baseUrl, authToken, username } = authParams;
|
25
|
-
if (!baseUrl || !authToken || !username) {
|
26
|
-
throw new Error("Missing required authentication information");
|
27
|
-
}
|
28
|
-
const config = getConfluenceRequestConfig(baseUrl, username, authToken);
|
29
|
-
// Get current version number
|
30
|
-
const response = yield axiosClient_1.axiosClient.get(`/api/v2/pages/${pageId}`, config);
|
31
|
-
const currVersion = response.data.version.number;
|
32
|
-
const payload = {
|
33
|
-
id: pageId,
|
34
|
-
status: "current",
|
35
|
-
title,
|
36
|
-
body: {
|
37
|
-
representation: "storage",
|
38
|
-
value: content,
|
39
|
-
},
|
40
|
-
version: {
|
41
|
-
number: currVersion + 1,
|
42
|
-
},
|
43
|
-
};
|
44
|
-
yield axiosClient_1.axiosClient.put(`/api/v2/pages/${pageId}`, payload, config);
|
45
|
-
});
|
46
|
-
exports.default = confluenceUpdatePage;
|
@@ -1,18 +0,0 @@
|
|
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 fillTemplateAction = (_a) => __awaiter(void 0, [_a], void 0, function* ({ template }) {
|
13
|
-
// Simply return the template without any modification
|
14
|
-
return {
|
15
|
-
result: template,
|
16
|
-
};
|
17
|
-
});
|
18
|
-
exports.default = fillTemplateAction;
|
@@ -1,38 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
const axios_1 = __importDefault(require("axios"));
|
16
|
-
const genericApiCall = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, }) {
|
17
|
-
try {
|
18
|
-
const { endpoint, method, headers, body } = params;
|
19
|
-
const response = yield (0, axios_1.default)({
|
20
|
-
url: endpoint,
|
21
|
-
method,
|
22
|
-
headers,
|
23
|
-
data: method !== "GET" ? body : undefined,
|
24
|
-
});
|
25
|
-
return {
|
26
|
-
statusCode: response.status,
|
27
|
-
headers: response.headers,
|
28
|
-
data: response.data,
|
29
|
-
};
|
30
|
-
}
|
31
|
-
catch (error) {
|
32
|
-
if (axios_1.default.isAxiosError(error)) {
|
33
|
-
throw Error("Axios Error: " + (error.message || "Failed to make API call"));
|
34
|
-
}
|
35
|
-
throw Error("Error: " + (error || "Failed to make API call"));
|
36
|
-
}
|
37
|
-
});
|
38
|
-
exports.default = genericApiCall;
|
@@ -1,96 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
const axios_1 = __importDefault(require("axios"));
|
16
|
-
const types_1 = require("../../autogen/types");
|
17
|
-
const INCLUDED_TYPES = [
|
18
|
-
"monument",
|
19
|
-
"museum",
|
20
|
-
"art_gallery",
|
21
|
-
"sculpture",
|
22
|
-
"cultural_landmark",
|
23
|
-
"historical_place",
|
24
|
-
"performing_arts_theater",
|
25
|
-
"university",
|
26
|
-
"aquarium",
|
27
|
-
"botanical_garden",
|
28
|
-
"comedy_club",
|
29
|
-
"park",
|
30
|
-
"movie_theater",
|
31
|
-
"national_park",
|
32
|
-
"garden",
|
33
|
-
"night_club",
|
34
|
-
"tourist_attraction",
|
35
|
-
"water_park",
|
36
|
-
"zoo",
|
37
|
-
"bar",
|
38
|
-
"restaurant",
|
39
|
-
"food_court",
|
40
|
-
"bakery",
|
41
|
-
"cafe",
|
42
|
-
"coffee_shop",
|
43
|
-
"pub",
|
44
|
-
"wine_bar",
|
45
|
-
"spa",
|
46
|
-
"beach",
|
47
|
-
"market",
|
48
|
-
"shopping_mall",
|
49
|
-
"stadium",
|
50
|
-
];
|
51
|
-
const nearbysearch = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
52
|
-
const url = `https://places.googleapis.com/v1/places:searchNearby`;
|
53
|
-
const fieldMask = [
|
54
|
-
"places.displayName",
|
55
|
-
"places.formattedAddress",
|
56
|
-
"places.priceLevel",
|
57
|
-
"places.rating",
|
58
|
-
"places.primaryTypeDisplayName",
|
59
|
-
"places.editorialSummary",
|
60
|
-
"places.regularOpeningHours",
|
61
|
-
].join(",");
|
62
|
-
const response = yield axios_1.default.post(url, {
|
63
|
-
maxResultCount: 20,
|
64
|
-
includedTypes: INCLUDED_TYPES,
|
65
|
-
locationRestriction: {
|
66
|
-
circle: {
|
67
|
-
center: {
|
68
|
-
latitude: params.latitude,
|
69
|
-
longitude: params.longitude,
|
70
|
-
},
|
71
|
-
radius: 10000,
|
72
|
-
},
|
73
|
-
},
|
74
|
-
}, {
|
75
|
-
headers: {
|
76
|
-
"X-Goog-Api-Key": authParams.apiKey,
|
77
|
-
"X-Goog-FieldMask": fieldMask,
|
78
|
-
"Content-Type": "application/json",
|
79
|
-
},
|
80
|
-
});
|
81
|
-
return types_1.googlemapsNearbysearchOutputSchema.parse({
|
82
|
-
results: response.data.places.map((place) => {
|
83
|
-
var _a, _b;
|
84
|
-
return ({
|
85
|
-
name: place.displayName.text,
|
86
|
-
address: place.formattedAddress,
|
87
|
-
priceLevel: place.priceLevel,
|
88
|
-
rating: place.rating,
|
89
|
-
primaryType: place.primaryTypeDisplayName.text,
|
90
|
-
editorialSummary: ((_a = place.editorialSummary) === null || _a === void 0 ? void 0 : _a.text) || "",
|
91
|
-
openingHours: ((_b = place.regularOpeningHours) === null || _b === void 0 ? void 0 : _b.weekdayDescriptions.join("\n")) || "",
|
92
|
-
});
|
93
|
-
}),
|
94
|
-
});
|
95
|
-
});
|
96
|
-
exports.default = nearbysearch;
|
@@ -1,154 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
const snowflake_sdk_1 = __importDefault(require("snowflake-sdk"));
|
16
|
-
const crypto_1 = __importDefault(require("crypto"));
|
17
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
18
|
-
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
19
|
-
const uuid_1 = require("uuid");
|
20
|
-
// Only log errors.
|
21
|
-
snowflake_sdk_1.default.configure({ logLevel: "ERROR" });
|
22
|
-
const runSnowflakeQueryWriteResultsToS3 = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
23
|
-
const { databaseName, warehouse, query, user, accountName, s3BucketName, s3Region, outputFormat = "json" } = params;
|
24
|
-
const { apiKey: privateKey, awsAccessKeyId, awsSecretAccessKey } = authParams;
|
25
|
-
if (!privateKey) {
|
26
|
-
throw new Error("Snowflake private key is required");
|
27
|
-
}
|
28
|
-
if (!awsAccessKeyId || !awsSecretAccessKey) {
|
29
|
-
throw new Error("AWS credentials are required");
|
30
|
-
}
|
31
|
-
if (!accountName || !user || !databaseName || !warehouse || !query || !s3BucketName) {
|
32
|
-
throw new Error("Missing required parameters for Snowflake query or S3 destination");
|
33
|
-
}
|
34
|
-
const getPrivateKeyCorrectFormat = (privateKey) => {
|
35
|
-
const buffer = Buffer.from(privateKey);
|
36
|
-
const privateKeyObject = crypto_1.default.createPrivateKey({
|
37
|
-
key: buffer,
|
38
|
-
format: "pem",
|
39
|
-
passphrase: "password",
|
40
|
-
});
|
41
|
-
const privateKeyCorrectFormat = privateKeyObject.export({
|
42
|
-
format: "pem",
|
43
|
-
type: "pkcs8",
|
44
|
-
});
|
45
|
-
return privateKeyCorrectFormat.toString();
|
46
|
-
};
|
47
|
-
const executeQueryAndFormatData = () => __awaiter(void 0, void 0, void 0, function* () {
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
49
|
-
const queryResults = yield new Promise((resolve, reject) => {
|
50
|
-
connection.execute({
|
51
|
-
sqlText: query,
|
52
|
-
complete: (err, stmt, rows) => {
|
53
|
-
if (err) {
|
54
|
-
return reject(err);
|
55
|
-
}
|
56
|
-
return resolve(rows || []);
|
57
|
-
},
|
58
|
-
});
|
59
|
-
});
|
60
|
-
// Format the results based on the output format
|
61
|
-
let formattedData;
|
62
|
-
if (outputFormat.toLowerCase() === "csv") {
|
63
|
-
if (queryResults.length === 0) {
|
64
|
-
formattedData = "";
|
65
|
-
}
|
66
|
-
else {
|
67
|
-
const headers = Object.keys(queryResults[0]).join(",");
|
68
|
-
const rows = queryResults.map(row => Object.values(row)
|
69
|
-
.map(value => (typeof value === "object" && value !== null ? JSON.stringify(value) : value))
|
70
|
-
.join(","));
|
71
|
-
formattedData = [headers, ...rows].join("\n");
|
72
|
-
}
|
73
|
-
}
|
74
|
-
else {
|
75
|
-
// Default to JSON
|
76
|
-
formattedData = JSON.stringify(queryResults, null, 2);
|
77
|
-
}
|
78
|
-
return { formattedData, resultsLength: queryResults.length };
|
79
|
-
});
|
80
|
-
const uploadToS3AndGetURL = (formattedData) => __awaiter(void 0, void 0, void 0, function* () {
|
81
|
-
// Create S3 client
|
82
|
-
const s3Client = new client_s3_1.S3Client({
|
83
|
-
region: s3Region,
|
84
|
-
credentials: {
|
85
|
-
accessKeyId: awsAccessKeyId,
|
86
|
-
secretAccessKey: awsSecretAccessKey,
|
87
|
-
},
|
88
|
-
});
|
89
|
-
const contentType = outputFormat.toLowerCase() === "csv" ? "text/csv" : "application/json";
|
90
|
-
const fileExtension = outputFormat.toLowerCase() === "csv" ? "csv" : "json";
|
91
|
-
const finalKey = `${databaseName}/${(0, uuid_1.v4)()}.${fileExtension}`;
|
92
|
-
// Upload to S3 without ACL
|
93
|
-
const uploadCommand = new client_s3_1.PutObjectCommand({
|
94
|
-
Bucket: s3BucketName,
|
95
|
-
Key: finalKey,
|
96
|
-
Body: formattedData,
|
97
|
-
ContentType: contentType,
|
98
|
-
});
|
99
|
-
yield s3Client.send(uploadCommand);
|
100
|
-
// Generate a presigned URL (valid for an hour)
|
101
|
-
const getObjectCommand = new client_s3_1.GetObjectCommand({
|
102
|
-
Bucket: s3BucketName,
|
103
|
-
Key: finalKey,
|
104
|
-
});
|
105
|
-
const presignedUrl = yield (0, s3_request_presigner_1.getSignedUrl)(s3Client, getObjectCommand, { expiresIn: 3600 });
|
106
|
-
return presignedUrl;
|
107
|
-
});
|
108
|
-
// Process the private key
|
109
|
-
const privateKeyCorrectFormatString = getPrivateKeyCorrectFormat(privateKey);
|
110
|
-
// Set up a connection using snowflake-sdk
|
111
|
-
const connection = snowflake_sdk_1.default.createConnection({
|
112
|
-
account: accountName,
|
113
|
-
username: user,
|
114
|
-
privateKey: privateKeyCorrectFormatString,
|
115
|
-
authenticator: "SNOWFLAKE_JWT",
|
116
|
-
role: "ACCOUNTADMIN",
|
117
|
-
warehouse: warehouse,
|
118
|
-
database: databaseName,
|
119
|
-
});
|
120
|
-
try {
|
121
|
-
// Connect to Snowflake
|
122
|
-
yield new Promise((resolve, reject) => {
|
123
|
-
connection.connect((err, conn) => {
|
124
|
-
if (err) {
|
125
|
-
console.error("Unable to connect to Snowflake:", err.message);
|
126
|
-
return reject(err);
|
127
|
-
}
|
128
|
-
resolve(conn);
|
129
|
-
});
|
130
|
-
});
|
131
|
-
const { formattedData, resultsLength } = yield executeQueryAndFormatData();
|
132
|
-
const presignedUrl = yield uploadToS3AndGetURL(formattedData);
|
133
|
-
// Return fields to match schema definition
|
134
|
-
connection.destroy(err => {
|
135
|
-
if (err) {
|
136
|
-
console.log("Failed to disconnect from Snowflake:", err);
|
137
|
-
}
|
138
|
-
});
|
139
|
-
return {
|
140
|
-
bucketUrl: presignedUrl,
|
141
|
-
message: `Query results successfully written to S3. URL valid for 1 hour.`,
|
142
|
-
rowCount: resultsLength,
|
143
|
-
};
|
144
|
-
}
|
145
|
-
catch (error) {
|
146
|
-
connection.destroy(err => {
|
147
|
-
if (err) {
|
148
|
-
console.log("Failed to disconnect from Snowflake:", err);
|
149
|
-
}
|
150
|
-
});
|
151
|
-
throw Error(`An error occurred: ${error}`);
|
152
|
-
}
|
153
|
-
});
|
154
|
-
exports.default = runSnowflakeQueryWriteResultsToS3;
|
@@ -1,45 +0,0 @@
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
const firecrawl_js_1 = __importDefault(require("@mendable/firecrawl-js"));
|
16
|
-
const scrapeTweetDataWithNitter = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
17
|
-
const tweetUrlRegex = /^(?:https?:\/\/)?(?:www\.)?(?:twitter\.com|x\.com)\/([a-zA-Z0-9_]+)\/status\/(\d+)(?:\?.*)?$/;
|
18
|
-
if (!tweetUrlRegex.test(params.tweetUrl)) {
|
19
|
-
throw new Error("Invalid tweet URL. Expected format: https://twitter.com/username/status/id or https://x.com/username/status/id");
|
20
|
-
}
|
21
|
-
const nitterUrl = params.tweetUrl.replace(/^(?:https?:\/\/)?(?:www\.)?(?:twitter\.com|x\.com)/i, "https://nitter.net");
|
22
|
-
// Initialize Firecrawl
|
23
|
-
if (!authParams.apiKey) {
|
24
|
-
throw new Error("API key is required for X+Nitter+Firecrawl");
|
25
|
-
}
|
26
|
-
const firecrawl = new firecrawl_js_1.default({
|
27
|
-
apiKey: authParams.apiKey,
|
28
|
-
});
|
29
|
-
try {
|
30
|
-
// Scrape the Nitter URL
|
31
|
-
const result = yield firecrawl.scrapeUrl(nitterUrl);
|
32
|
-
if (!result.success) {
|
33
|
-
throw new Error(`Failed to scrape tweet: ${result.error || "Unknown error"}`);
|
34
|
-
}
|
35
|
-
// Extract the tweet text from the scraped content - simple approach - in practice, you might need more robust parsing based on nitter html structure
|
36
|
-
const tweetContent = result.markdown;
|
37
|
-
return {
|
38
|
-
text: tweetContent || "Error scraping with firecrawl",
|
39
|
-
};
|
40
|
-
}
|
41
|
-
catch (error) {
|
42
|
-
throw new Error(`Error scraping tweet: ${error instanceof Error ? error.message : error}`);
|
43
|
-
}
|
44
|
-
});
|
45
|
-
exports.default = scrapeTweetDataWithNitter;
|