@credal/actions 0.1.86 → 0.1.88
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/autogen/templates.js +4 -0
- package/dist/actions/autogen/types.d.ts +5 -0
- package/dist/actions/autogen/types.js +1 -0
- package/dist/actions/providers/gong/getGongTranscripts.js +39 -46
- package/dist/actions/providers/slack/listConversations.d.ts +1 -1
- package/package.json +1 -1
- package/dist/actions/autogen/definitions.d.ts +0 -5
- package/dist/actions/autogen/definitions.js +0 -132
- package/dist/actions/definitions.js +0 -35
- package/dist/actions/invokeMapper.d.ts +0 -9
- package/dist/actions/invokeMapper.js +0 -33
- package/dist/actions/providers/confluence/updatePage.d.ts +0 -3
- package/dist/actions/providers/confluence/updatePage.js +0 -43
- package/dist/actions/providers/googlemaps/nearbysearch.d.ts +0 -3
- package/dist/actions/providers/googlemaps/nearbysearch.js +0 -96
- package/dist/actions/providers/jira/createTicket.d.ts +0 -3
- package/dist/actions/providers/jira/createTicket.js +0 -34
- package/dist/actions/providers/slack/list_conversations.d.ts +0 -3
- package/dist/actions/providers/slack/list_conversations.js +0 -60
- package/dist/actions/providers/slack/summarizeChannel.d.ts +0 -3
- package/dist/actions/providers/slack/summarizeChannel.js +0 -51
- package/dist/actions/schema.js +0 -6
- package/dist/actions/types.js +0 -2
- package/dist/main.js +0 -11
@@ -5114,6 +5114,10 @@ exports.gongGetGongTranscriptsDefinition = {
|
|
5114
5114
|
type: "string",
|
5115
5115
|
description: "The name of the call",
|
5116
5116
|
},
|
5117
|
+
startTime: {
|
5118
|
+
type: "string",
|
5119
|
+
description: "The start time of the call in ISO 8601 format",
|
5120
|
+
},
|
5117
5121
|
transcript: {
|
5118
5122
|
type: "array",
|
5119
5123
|
description: "The transcript",
|
@@ -2304,6 +2304,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2304
2304
|
callTranscripts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
2305
2305
|
callId: z.ZodOptional<z.ZodString>;
|
2306
2306
|
callName: z.ZodOptional<z.ZodString>;
|
2307
|
+
startTime: z.ZodOptional<z.ZodString>;
|
2307
2308
|
transcript: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
2308
2309
|
speakerName: z.ZodOptional<z.ZodString>;
|
2309
2310
|
topic: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
@@ -2340,6 +2341,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2340
2341
|
}, "strip", z.ZodTypeAny, {
|
2341
2342
|
callId?: string | undefined;
|
2342
2343
|
callName?: string | undefined;
|
2344
|
+
startTime?: string | undefined;
|
2343
2345
|
transcript?: {
|
2344
2346
|
speakerName?: string | undefined;
|
2345
2347
|
topic?: string | null | undefined;
|
@@ -2352,6 +2354,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2352
2354
|
}, {
|
2353
2355
|
callId?: string | undefined;
|
2354
2356
|
callName?: string | undefined;
|
2357
|
+
startTime?: string | undefined;
|
2355
2358
|
transcript?: {
|
2356
2359
|
speakerName?: string | undefined;
|
2357
2360
|
topic?: string | null | undefined;
|
@@ -2369,6 +2372,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2369
2372
|
callTranscripts?: {
|
2370
2373
|
callId?: string | undefined;
|
2371
2374
|
callName?: string | undefined;
|
2375
|
+
startTime?: string | undefined;
|
2372
2376
|
transcript?: {
|
2373
2377
|
speakerName?: string | undefined;
|
2374
2378
|
topic?: string | null | undefined;
|
@@ -2385,6 +2389,7 @@ export declare const gongGetGongTranscriptsOutputSchema: z.ZodObject<{
|
|
2385
2389
|
callTranscripts?: {
|
2386
2390
|
callId?: string | undefined;
|
2387
2391
|
callName?: string | undefined;
|
2392
|
+
startTime?: string | undefined;
|
2388
2393
|
transcript?: {
|
2389
2394
|
speakerName?: string | undefined;
|
2390
2395
|
topic?: string | null | undefined;
|
@@ -2069,6 +2069,7 @@ exports.gongGetGongTranscriptsOutputSchema = zod_1.z.object({
|
|
2069
2069
|
.object({
|
2070
2070
|
callId: zod_1.z.string().describe("The ID of the call").optional(),
|
2071
2071
|
callName: zod_1.z.string().describe("The name of the call").optional(),
|
2072
|
+
startTime: zod_1.z.string().describe("The start time of the call in ISO 8601 format").optional(),
|
2072
2073
|
transcript: zod_1.z
|
2073
2074
|
.array(zod_1.z
|
2074
2075
|
.object({
|
@@ -66,13 +66,6 @@ const UserSchema = zod_1.z
|
|
66
66
|
})
|
67
67
|
.partial()
|
68
68
|
.passthrough();
|
69
|
-
const TrackerSchema = zod_1.z
|
70
|
-
.object({
|
71
|
-
trackerId: zod_1.z.string(),
|
72
|
-
trackerName: zod_1.z.string(),
|
73
|
-
})
|
74
|
-
.partial()
|
75
|
-
.passthrough();
|
76
69
|
const CallSchema = zod_1.z
|
77
70
|
.object({
|
78
71
|
metaData: zod_1.z.object({
|
@@ -91,6 +84,12 @@ const CallSchema = zod_1.z
|
|
91
84
|
})
|
92
85
|
.partial()
|
93
86
|
.passthrough()),
|
87
|
+
content: zod_1.z.object({
|
88
|
+
trackers: zod_1.z.array(zod_1.z.object({
|
89
|
+
id: zod_1.z.string(),
|
90
|
+
name: zod_1.z.string(),
|
91
|
+
})),
|
92
|
+
}),
|
94
93
|
})
|
95
94
|
.partial()
|
96
95
|
.passthrough();
|
@@ -119,7 +118,6 @@ const TranscriptSchema = zod_1.z
|
|
119
118
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
120
119
|
const GongResponseSchema = zod_1.z.object({
|
121
120
|
users: zod_1.z.array(UserSchema).optional(),
|
122
|
-
keywordTrackers: zod_1.z.array(TrackerSchema).optional(),
|
123
121
|
calls: zod_1.z.array(CallSchema).optional(),
|
124
122
|
callTranscripts: zod_1.z.array(TranscriptSchema).optional(),
|
125
123
|
cursor: zod_1.z.string().optional(),
|
@@ -150,33 +148,6 @@ function getUsers(authToken) {
|
|
150
148
|
return results;
|
151
149
|
});
|
152
150
|
}
|
153
|
-
function getTrackers(authToken) {
|
154
|
-
return __awaiter(this, void 0, void 0, function* () {
|
155
|
-
let results = [];
|
156
|
-
let cursor = undefined;
|
157
|
-
do {
|
158
|
-
const response = yield axios_1.default.get(`https://api.gong.io/v2/settings/trackers` + (cursor ? `?cursor=${cursor}` : ""), {
|
159
|
-
headers: {
|
160
|
-
Authorization: `Bearer ${authToken}`,
|
161
|
-
"Content-Type": "application/json",
|
162
|
-
},
|
163
|
-
params: {},
|
164
|
-
});
|
165
|
-
if (!response) {
|
166
|
-
return results;
|
167
|
-
}
|
168
|
-
const parsedItems = zod_1.z.array(TrackerSchema).safeParse(response.data.keywordTrackers);
|
169
|
-
if (parsedItems.success) {
|
170
|
-
results = [...results, ...parsedItems.data];
|
171
|
-
}
|
172
|
-
else {
|
173
|
-
return results;
|
174
|
-
}
|
175
|
-
cursor = response.data.cursor;
|
176
|
-
} while (cursor);
|
177
|
-
return results;
|
178
|
-
});
|
179
|
-
}
|
180
151
|
function getCalls(authToken_1) {
|
181
152
|
return __awaiter(this, arguments, void 0, function* (authToken, params = {}) {
|
182
153
|
let results = [];
|
@@ -187,6 +158,9 @@ function getCalls(authToken_1) {
|
|
187
158
|
contentSelector: {
|
188
159
|
exposedFields: {
|
189
160
|
parties: true,
|
161
|
+
content: {
|
162
|
+
trackers: true,
|
163
|
+
},
|
190
164
|
},
|
191
165
|
},
|
192
166
|
}, {
|
@@ -263,24 +237,43 @@ const getGongTranscripts = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
263
237
|
};
|
264
238
|
}
|
265
239
|
const filteredGongUsers = gongUsers.filter(user => user.title === params.userRole);
|
266
|
-
const
|
267
|
-
|
240
|
+
const filteredPrimaryIds = filteredGongUsers.map(user => user.id).filter((id) => id !== undefined);
|
241
|
+
if (filteredPrimaryIds.length === 0) {
|
242
|
+
return {
|
243
|
+
success: false,
|
244
|
+
error: "No Gong users found with the specified role",
|
245
|
+
};
|
246
|
+
}
|
268
247
|
const calls = yield getCalls(authParams.authToken, {
|
269
248
|
fromDateTime: (_b = params.startDate) !== null && _b !== void 0 ? _b : "",
|
270
249
|
toDateTime: (_c = params.endDate) !== null && _c !== void 0 ? _c : "",
|
271
|
-
primaryUserIds:
|
272
|
-
? filteredGongUsers.map(user => user.id).filter((id) => id !== undefined)
|
273
|
-
: undefined,
|
274
|
-
trackerIds: filteredTrackers.length > 0
|
275
|
-
? filteredTrackers.map(tracker => tracker.trackerId).filter((id) => id !== undefined)
|
276
|
-
: undefined,
|
250
|
+
primaryUserIds: filteredPrimaryIds,
|
277
251
|
});
|
278
|
-
const
|
252
|
+
const callsWithTrackers = calls.filter(call => {
|
253
|
+
// If the user didn't provide any trackers to filter on, return all calls
|
254
|
+
if (!params.trackers || params.trackers.length === 0) {
|
255
|
+
return true;
|
256
|
+
}
|
257
|
+
// Filter out calls that don't have trackers if the user specified trackers
|
258
|
+
if (!call.content || !call.content.trackers) {
|
259
|
+
return false;
|
260
|
+
}
|
261
|
+
const trackerNames = call.content.trackers.map(tracker => tracker.name);
|
262
|
+
// Check if any of the trackers in the call match the ones provided by the user
|
263
|
+
return params.trackers.some(tr => trackerNames.includes(tr));
|
264
|
+
});
|
265
|
+
const publicCalls = callsWithTrackers.filter(call => {
|
279
266
|
if (!call.metaData) {
|
280
267
|
return false;
|
281
268
|
}
|
282
269
|
return !call.metaData.isPrivate;
|
283
270
|
});
|
271
|
+
if (publicCalls.length === 0) {
|
272
|
+
return {
|
273
|
+
success: true,
|
274
|
+
callTranscripts: [],
|
275
|
+
};
|
276
|
+
}
|
284
277
|
// Get transcripts for the calls we found
|
285
278
|
const callTranscripts = yield getTranscripts(authParams.authToken, {
|
286
279
|
fromDateTime: (_d = params.startDate) !== null && _d !== void 0 ? _d : "",
|
@@ -302,14 +295,14 @@ const getGongTranscripts = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
302
295
|
}
|
303
296
|
});
|
304
297
|
const callTranscriptsWithNames = callTranscripts.map(callTranscript => {
|
305
|
-
var _a, _b, _c, _d;
|
298
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
306
299
|
const currTranscript = Object.assign({}, callTranscript);
|
307
300
|
currTranscript.transcript = (_a = callTranscript.transcript) === null || _a === void 0 ? void 0 : _a.map(transcript => {
|
308
301
|
var _a;
|
309
302
|
const { speakerId } = transcript, rest = __rest(transcript, ["speakerId"]);
|
310
303
|
return Object.assign(Object.assign({}, rest), { speakerName: (_a = userIdToNameMap[speakerId !== null && speakerId !== void 0 ? speakerId : ""]) !== null && _a !== void 0 ? _a : "Unknown" });
|
311
304
|
});
|
312
|
-
return Object.assign({ callName: (_d = (_c = (_b = publicCalls.find(call => { var _a; return ((_a = call.metaData) === null || _a === void 0 ? void 0 : _a.id) === callTranscript.callId; })) === null || _b === void 0 ? void 0 : _b.metaData) === null || _c === void 0 ? void 0 : _c.title) !== null && _d !== void 0 ? _d : "" }, currTranscript);
|
305
|
+
return Object.assign({ callName: (_d = (_c = (_b = publicCalls.find(call => { var _a; return ((_a = call.metaData) === null || _a === void 0 ? void 0 : _a.id) === callTranscript.callId; })) === null || _b === void 0 ? void 0 : _b.metaData) === null || _c === void 0 ? void 0 : _c.title) !== null && _d !== void 0 ? _d : "", startTime: (_g = (_f = (_e = publicCalls.find(call => { var _a; return ((_a = call.metaData) === null || _a === void 0 ? void 0 : _a.id) === callTranscript.callId; })) === null || _e === void 0 ? void 0 : _e.metaData) === null || _f === void 0 ? void 0 : _f.started) !== null && _g !== void 0 ? _g : "" }, currTranscript);
|
313
306
|
});
|
314
307
|
return {
|
315
308
|
success: true,
|
package/package.json
CHANGED
@@ -1,5 +0,0 @@
|
|
1
|
-
import { ActionTemplate } from "@/actions/parse";
|
2
|
-
export declare const slackSendMessageDefinition: ActionTemplate;
|
3
|
-
export declare const slackListConversationsDefinition: ActionTemplate;
|
4
|
-
export declare const mathAddDefinition: ActionTemplate;
|
5
|
-
export declare const confluenceUpdatePageDefinition: ActionTemplate;
|
@@ -1,132 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.confluenceUpdatePageDefinition = exports.mathAddDefinition = exports.slackListConversationsDefinition = exports.slackSendMessageDefinition = void 0;
|
4
|
-
exports.slackSendMessageDefinition = {
|
5
|
-
provider: "slack",
|
6
|
-
name: "send_message",
|
7
|
-
description: "Sends a message to a Slack channel",
|
8
|
-
scopes: ["chat:write"],
|
9
|
-
parameters: {
|
10
|
-
channel: {
|
11
|
-
type: "string",
|
12
|
-
description: "The Slack channel to send the message to (e.g., \\#general, \\#alerts)",
|
13
|
-
required: true,
|
14
|
-
},
|
15
|
-
message: {
|
16
|
-
type: "string",
|
17
|
-
description: "The message content to send to Slack. Can include markdown formatting.",
|
18
|
-
required: true,
|
19
|
-
},
|
20
|
-
},
|
21
|
-
output: {},
|
22
|
-
};
|
23
|
-
exports.slackListConversationsDefinition = {
|
24
|
-
provider: "slack",
|
25
|
-
name: "list_conversations",
|
26
|
-
description: "Lists all conversations in a Slack workspace",
|
27
|
-
scopes: ["channels:read", "groups:read", "im:read", "mpim:read"],
|
28
|
-
authToken: {
|
29
|
-
type: "string",
|
30
|
-
description: "The Slack access token to use",
|
31
|
-
required: true,
|
32
|
-
},
|
33
|
-
parameters: {},
|
34
|
-
output: {
|
35
|
-
channels: {
|
36
|
-
type: "array",
|
37
|
-
description: "A list of channels in Slack",
|
38
|
-
required: true,
|
39
|
-
items: {
|
40
|
-
type: "object",
|
41
|
-
description: "A channel in Slack",
|
42
|
-
required: true,
|
43
|
-
properties: {
|
44
|
-
id: {
|
45
|
-
type: "string",
|
46
|
-
description: "The ID of the channel",
|
47
|
-
required: true,
|
48
|
-
},
|
49
|
-
name: {
|
50
|
-
type: "string",
|
51
|
-
description: "The name of the channel",
|
52
|
-
required: true,
|
53
|
-
},
|
54
|
-
topic: {
|
55
|
-
type: "string",
|
56
|
-
description: "The topic of the channel",
|
57
|
-
required: true,
|
58
|
-
},
|
59
|
-
purpose: {
|
60
|
-
type: "string",
|
61
|
-
description: "The purpose of the channel",
|
62
|
-
required: true,
|
63
|
-
},
|
64
|
-
},
|
65
|
-
},
|
66
|
-
},
|
67
|
-
},
|
68
|
-
};
|
69
|
-
exports.mathAddDefinition = {
|
70
|
-
provider: "math",
|
71
|
-
name: "add",
|
72
|
-
description: "Adds two numbers together",
|
73
|
-
scopes: [],
|
74
|
-
parameters: {
|
75
|
-
a: {
|
76
|
-
type: "number",
|
77
|
-
description: "The first number to add",
|
78
|
-
required: true,
|
79
|
-
},
|
80
|
-
b: {
|
81
|
-
type: "number",
|
82
|
-
description: "The second number to add",
|
83
|
-
required: true,
|
84
|
-
},
|
85
|
-
},
|
86
|
-
output: {
|
87
|
-
result: {
|
88
|
-
type: "number",
|
89
|
-
description: "The sum of the two numbers",
|
90
|
-
required: true,
|
91
|
-
},
|
92
|
-
},
|
93
|
-
};
|
94
|
-
exports.confluenceUpdatePageDefinition = {
|
95
|
-
provider: "confluence",
|
96
|
-
name: "updatePage",
|
97
|
-
description: "Updates a confluence page with the new content specified",
|
98
|
-
scopes: [],
|
99
|
-
authToken: {
|
100
|
-
type: "string",
|
101
|
-
description: "The access token to use for confluence",
|
102
|
-
required: true,
|
103
|
-
},
|
104
|
-
baseUrl: {
|
105
|
-
type: "string",
|
106
|
-
description: "The base url required to access the confluence instance",
|
107
|
-
required: true,
|
108
|
-
},
|
109
|
-
parameters: {
|
110
|
-
pageId: {
|
111
|
-
type: "string",
|
112
|
-
description: "The page id that should be updated",
|
113
|
-
required: true,
|
114
|
-
},
|
115
|
-
title: {
|
116
|
-
type: "string",
|
117
|
-
description: "The title of the page that should be updated",
|
118
|
-
required: true,
|
119
|
-
},
|
120
|
-
username: {
|
121
|
-
type: "string",
|
122
|
-
description: "The username of the person updating the page",
|
123
|
-
required: true,
|
124
|
-
},
|
125
|
-
content: {
|
126
|
-
type: "string",
|
127
|
-
description: "The new content for the page",
|
128
|
-
required: true,
|
129
|
-
},
|
130
|
-
},
|
131
|
-
output: {},
|
132
|
-
};
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.mathAddDefinition = exports.slackSendMessageDefinition = void 0;
|
4
|
-
exports.slackSendMessageDefinition = {
|
5
|
-
name: "send_message",
|
6
|
-
description: "Sends a message to a Slack channel",
|
7
|
-
parameters: {
|
8
|
-
"channel": {
|
9
|
-
"type": "string",
|
10
|
-
"description": "The Slack channel to send the message to (e.g., \\#general, \\#alerts)",
|
11
|
-
"required": true
|
12
|
-
},
|
13
|
-
"message": {
|
14
|
-
"type": "string",
|
15
|
-
"description": "The message content to send to Slack. Can include markdown formatting.",
|
16
|
-
"required": true
|
17
|
-
}
|
18
|
-
}
|
19
|
-
};
|
20
|
-
exports.mathAddDefinition = {
|
21
|
-
name: "add",
|
22
|
-
description: "Adds two numbers together",
|
23
|
-
parameters: {
|
24
|
-
"a": {
|
25
|
-
"type": "number",
|
26
|
-
"description": "The first number to add",
|
27
|
-
"required": true
|
28
|
-
},
|
29
|
-
"b": {
|
30
|
-
"type": "number",
|
31
|
-
"description": "The second number to add",
|
32
|
-
"required": true
|
33
|
-
}
|
34
|
-
}
|
35
|
-
};
|
@@ -1,9 +0,0 @@
|
|
1
|
-
import { type ActionFunction } from "./autogen/types";
|
2
|
-
import { z } from "zod";
|
3
|
-
interface ActionFunctionComponents {
|
4
|
-
fn: ActionFunction<any, any, any>;
|
5
|
-
paramsSchema: z.ZodSchema;
|
6
|
-
outputSchema: z.ZodSchema;
|
7
|
-
}
|
8
|
-
export declare const FunctionMapper: Record<string, Record<string, ActionFunctionComponents>>;
|
9
|
-
export {};
|
@@ -1,33 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.FunctionMapper = void 0;
|
7
|
-
const add_1 = __importDefault(require("./providers/math/add"));
|
8
|
-
const list_conversations_1 = __importDefault(require("./providers/slack/list_conversations"));
|
9
|
-
const updatePage_1 = __importDefault(require("./providers/confluence/updatePage"));
|
10
|
-
const types_1 = require("./autogen/types");
|
11
|
-
exports.FunctionMapper = {
|
12
|
-
math: {
|
13
|
-
add: {
|
14
|
-
fn: add_1.default,
|
15
|
-
paramsSchema: types_1.mathAddParamsSchema,
|
16
|
-
outputSchema: types_1.mathAddOutputSchema,
|
17
|
-
},
|
18
|
-
},
|
19
|
-
slack: {
|
20
|
-
listConversations: {
|
21
|
-
fn: list_conversations_1.default,
|
22
|
-
paramsSchema: types_1.slackListConversationsParamsSchema,
|
23
|
-
outputSchema: types_1.slackListConversationsOutputSchema,
|
24
|
-
},
|
25
|
-
},
|
26
|
-
confluence: {
|
27
|
-
updatePage: {
|
28
|
-
fn: updatePage_1.default,
|
29
|
-
paramsSchema: types_1.confluenceUpdatePageParamsSchema,
|
30
|
-
outputSchema: types_1.confluenceUpdatePageOutputSchema,
|
31
|
-
},
|
32
|
-
},
|
33
|
-
};
|
@@ -1,43 +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, username, content, title } = params;
|
24
|
-
const { baseUrl, authToken } = authParams;
|
25
|
-
const config = getConfluenceRequestConfig(baseUrl, username, authToken);
|
26
|
-
// Get current version number
|
27
|
-
const response = yield axiosClient_1.axiosClient.get(`/api/v2/pages/${pageId}`, config);
|
28
|
-
const currVersion = response.data.version.number;
|
29
|
-
const payload = {
|
30
|
-
id: pageId,
|
31
|
-
status: "current",
|
32
|
-
title,
|
33
|
-
body: {
|
34
|
-
representation: "storage",
|
35
|
-
value: content,
|
36
|
-
},
|
37
|
-
version: {
|
38
|
-
number: currVersion + 1,
|
39
|
-
},
|
40
|
-
};
|
41
|
-
yield axiosClient_1.axiosClient.put(`/api/v2/pages/${pageId}`, payload, config);
|
42
|
-
});
|
43
|
-
exports.default = confluenceUpdatePage;
|
@@ -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,34 +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 createTicket = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
17
|
-
const { authToken, baseUrl } = authParams;
|
18
|
-
const url = `${baseUrl}/rest/api/3/issue`;
|
19
|
-
const payload = {
|
20
|
-
fields: Object.assign({ project: {
|
21
|
-
key: params.projectKey,
|
22
|
-
}, summary: params.summary, description: params.description, issuetype: {
|
23
|
-
name: params.issueType,
|
24
|
-
} }, (params.reporter ? { reporter: { id: params.reporter } } : {})),
|
25
|
-
};
|
26
|
-
const response = yield axios_1.default.post(url, payload, {
|
27
|
-
headers: {
|
28
|
-
Authorization: `Basic ${Buffer.from(`${params.username}:${authToken}`).toString("base64")}`,
|
29
|
-
"Content-Type": "application/json",
|
30
|
-
},
|
31
|
-
});
|
32
|
-
return response.data;
|
33
|
-
});
|
34
|
-
exports.default = createTicket;
|
@@ -1,60 +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 web_api_1 = require("@slack/web-api");
|
13
|
-
const slackListConversations = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, }) {
|
14
|
-
var _b;
|
15
|
-
const client = new web_api_1.WebClient(authParams.authToken);
|
16
|
-
const allChannels = [];
|
17
|
-
let cursor;
|
18
|
-
const limit = 100;
|
19
|
-
try {
|
20
|
-
do {
|
21
|
-
const response = yield client.conversations.list({
|
22
|
-
exclude_archived: true,
|
23
|
-
limit: limit,
|
24
|
-
cursor: cursor,
|
25
|
-
});
|
26
|
-
if (!response.ok) {
|
27
|
-
throw new Error(`Slack API error: ${response.error}`);
|
28
|
-
}
|
29
|
-
// Add channels from this page to our results
|
30
|
-
if (response.channels && Array.isArray(response.channels)) {
|
31
|
-
allChannels.push(...response.channels);
|
32
|
-
}
|
33
|
-
// Get cursor for next page
|
34
|
-
cursor = (_b = response.response_metadata) === null || _b === void 0 ? void 0 : _b.next_cursor;
|
35
|
-
// If user specified a limit and we've hit it, stop paginating
|
36
|
-
if (limit && allChannels.length >= limit) {
|
37
|
-
allChannels.splice(limit); // Trim to exact limit
|
38
|
-
break;
|
39
|
-
}
|
40
|
-
} while (cursor && cursor.length > 0);
|
41
|
-
return {
|
42
|
-
channels: allChannels.map(channel => ({
|
43
|
-
id: channel.id,
|
44
|
-
name: channel.name,
|
45
|
-
topic: channel.topic.value,
|
46
|
-
purpose: channel.purpose.value,
|
47
|
-
})),
|
48
|
-
};
|
49
|
-
}
|
50
|
-
catch (error) {
|
51
|
-
if (error instanceof Error) {
|
52
|
-
// Enhance error with more context
|
53
|
-
throw new Error(`Failed to list Slack conversations: ${error.message}`);
|
54
|
-
}
|
55
|
-
else {
|
56
|
-
throw error;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
});
|
60
|
-
exports.default = slackListConversations;
|
@@ -1,51 +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 web_api_1 = require("@slack/web-api");
|
16
|
-
const helpers_1 = require("./helpers");
|
17
|
-
const openai_1 = __importDefault(require("openai"));
|
18
|
-
const summarizeChannel = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
|
19
|
-
var _b;
|
20
|
-
const client = new web_api_1.WebClient(authParams.authToken);
|
21
|
-
const { channelName } = params;
|
22
|
-
const allChannels = yield (0, helpers_1.getSlackChannels)(client);
|
23
|
-
const channel = allChannels.find(channel => channel.name === channelName && channel.is_private === false);
|
24
|
-
if (!channel || !channel.id) {
|
25
|
-
throw Error(`Channel with name ${channelName} not found`);
|
26
|
-
}
|
27
|
-
// summarize last 50 messages
|
28
|
-
const messages = yield client.conversations.history({
|
29
|
-
channel: channel.id,
|
30
|
-
limit: 50,
|
31
|
-
});
|
32
|
-
if (!messages.ok) {
|
33
|
-
throw Error(`Failed to fetch messages from channel ${channel.name}`);
|
34
|
-
}
|
35
|
-
const history = ((_b = messages.messages) === null || _b === void 0 ? void 0 : _b.reverse().map(message => message.user + ":" + message.text).join("\n")) || "";
|
36
|
-
const oai = new openai_1.default();
|
37
|
-
const completion = yield oai.chat.completions.create({
|
38
|
-
model: "gpt-4o-mini",
|
39
|
-
messages: [
|
40
|
-
{
|
41
|
-
role: "user",
|
42
|
-
content: "Summarize the following messages in the Slack channel:\n" + history,
|
43
|
-
},
|
44
|
-
],
|
45
|
-
});
|
46
|
-
const summary = completion.choices[0].message.content || "";
|
47
|
-
return {
|
48
|
-
summary: summary,
|
49
|
-
};
|
50
|
-
});
|
51
|
-
exports.default = summarizeChannel;
|
package/dist/actions/schema.js
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.createParametersObject = createParametersObject;
|
4
|
-
function createParametersObject(parameters) {
|
5
|
-
return Object.fromEntries(Object.entries(parameters).map(([key, param]) => [key, param.type]));
|
6
|
-
}
|
package/dist/actions/types.js
DELETED
package/dist/main.js
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const list_conversations_1 = __importDefault(require("./actions/providers/slack/list_conversations"));
|
7
|
-
const result = (0, list_conversations_1.default)({
|
8
|
-
accessToken: "xoxp-4172665288294-8092684180551-8154529379075-89f1f70cc06e5648e8f912ba96f56626"
|
9
|
-
}).then((result) => {
|
10
|
-
console.log(result);
|
11
|
-
});
|