@credal/actions 0.2.195 → 0.2.197

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/actions/actionMapper.js +8 -1
  2. package/dist/actions/autogen/templates.d.ts +3 -0
  3. package/dist/actions/autogen/templates.js +144 -0
  4. package/dist/actions/autogen/types.d.ts +97 -0
  5. package/dist/actions/autogen/types.js +43 -0
  6. package/dist/actions/groups.d.ts +6 -0
  7. package/dist/actions/groups.js +248 -0
  8. package/dist/actions/providers/credal/callCopilot.d.ts +3 -0
  9. package/dist/actions/providers/credal/callCopilot.js +36 -0
  10. package/dist/actions/providers/github/searchRepository.js +7 -7
  11. package/dist/actions/providers/jira/moveJiraTicketToProject.d.ts +3 -0
  12. package/dist/actions/providers/jira/moveJiraTicketToProject.js +176 -0
  13. package/dist/actions/providers/math/index.d.ts +1 -0
  14. package/dist/actions/providers/math/index.js +37 -0
  15. package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +3 -0
  16. package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +43 -0
  17. package/dist/actions/providers/slack/archiveChannel.d.ts +3 -0
  18. package/dist/actions/providers/slack/archiveChannel.js +35 -0
  19. package/dist/actions/providers/slack/index.d.ts +1 -0
  20. package/dist/actions/providers/slack/index.js +37 -0
  21. package/dist/actions/providers/slack/listConversations.d.ts +3 -0
  22. package/dist/actions/providers/slack/listConversations.js +41 -0
  23. package/dist/actions/providers/slackUser/searchSlackRTS.js +21 -5
  24. package/package.json +1 -1
  25. package/dist/actions/providers/jira/updateServiceDeskRequest.d.ts +0 -3
  26. package/dist/actions/providers/jira/updateServiceDeskRequest.js +0 -72
  27. package/dist/actions/providers/microsoft/sendOutlookEmail.d.ts +0 -3
  28. package/dist/actions/providers/microsoft/sendOutlookEmail.js +0 -48
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.listConversations = void 0;
37
+ exports.listConversations = __importStar(require("./listConversations"));
@@ -0,0 +1,3 @@
1
+ import type { slackListConversationsFunction } from "../../autogen/types";
2
+ declare const slackListConversations: slackListConversationsFunction;
3
+ export default slackListConversations;
@@ -0,0 +1,41 @@
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 helpers_1 = require("./helpers");
14
+ const slackListConversations = (_a) => __awaiter(void 0, [_a], void 0, function* ({ authParams, }) {
15
+ const client = new web_api_1.WebClient(authParams.authToken);
16
+ try {
17
+ const allChannels = yield (0, helpers_1.getSlackChannels)(client);
18
+ const filteredChannels = [];
19
+ for (const channel of allChannels) {
20
+ if (channel.name && channel.topic && channel.topic.value && channel.purpose && channel.purpose.value) {
21
+ const purpose = channel.purpose.value;
22
+ const topic = channel.topic.value;
23
+ const name = channel.name;
24
+ filteredChannels.push(Object.assign(Object.assign({}, channel), { purpose, topic, name }));
25
+ }
26
+ }
27
+ return {
28
+ channels: filteredChannels,
29
+ };
30
+ }
31
+ catch (error) {
32
+ if (error instanceof Error) {
33
+ // Enhance error with more context
34
+ throw new Error(`Failed to list Slack conversations: ${error.message}`);
35
+ }
36
+ else {
37
+ throw error;
38
+ }
39
+ }
40
+ });
41
+ exports.default = slackListConversations;
@@ -37,6 +37,16 @@ function appendToQuery(query, suffix) {
37
37
  return q;
38
38
  return `${q} ${s}`;
39
39
  }
40
+ function normalizeUnixSecondsInput(value) {
41
+ if (!value)
42
+ return undefined;
43
+ if (!Number.isNaN(Number(value)))
44
+ return value;
45
+ const date = new Date(value);
46
+ if (isNaN(date.getTime()))
47
+ return undefined;
48
+ return String(Math.floor(date.getTime() / 1000));
49
+ }
40
50
  /* ===================== MAIN EXPORT ===================== */
41
51
  const searchSlackRTS = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
42
52
  var _b, _c;
@@ -72,7 +82,11 @@ const searchSlackRTS = (_a) => __awaiter(void 0, [_a], void 0, function* ({ para
72
82
  query: finalQuery,
73
83
  };
74
84
  // Add optional parameters if provided
75
- if (channelTypes && channelTypes.length > 0) {
85
+ if (!channelTypes || channelTypes.length === 0) {
86
+ // Default is only public channels, which is unhelpful bc many people want to search private channels
87
+ requestParams.channel_types = ["public_channel", "private_channel", "im"];
88
+ }
89
+ else {
76
90
  requestParams.channel_types = channelTypes;
77
91
  }
78
92
  if (contentTypes && contentTypes.length > 0) {
@@ -87,11 +101,13 @@ const searchSlackRTS = (_a) => __awaiter(void 0, [_a], void 0, function* ({ para
87
101
  if (includeContextMessages !== undefined) {
88
102
  requestParams.include_context_messages = includeContextMessages;
89
103
  }
90
- if (before) {
91
- requestParams.before = before;
104
+ const normalizedBefore = normalizeUnixSecondsInput(before);
105
+ if (normalizedBefore) {
106
+ requestParams.before = normalizedBefore;
92
107
  }
93
- if (after) {
94
- requestParams.after = after;
108
+ const normalizedAfter = normalizeUnixSecondsInput(after);
109
+ if (normalizedAfter) {
110
+ requestParams.after = normalizedAfter;
95
111
  }
96
112
  try {
97
113
  // Call the assistant.search.context API
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@credal/actions",
3
- "version": "0.2.195",
3
+ "version": "0.2.197",
4
4
  "type": "module",
5
5
  "description": "AI Actions by Credal AI",
6
6
  "sideEffects": false,
@@ -1,3 +0,0 @@
1
- import type { jiraUpdateServiceDeskRequestFunction } from "../../autogen/types.js";
2
- declare const updateServiceDeskRequest: jiraUpdateServiceDeskRequestFunction;
3
- export default updateServiceDeskRequest;
@@ -1,72 +0,0 @@
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 { axiosClient } from "../../util/axiosClient.js";
11
- const updateServiceDeskRequest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
12
- const { issueId, requestTypeId, summary, description, priority, customFields } = params;
13
- const { authToken, cloudId, baseUrl } = authParams;
14
- if (!cloudId || !authToken) {
15
- throw new Error("Valid Cloud ID and auth token are required to update service desk request");
16
- }
17
- // Use the regular Jira API for updating service desk requests as they are still Jira issues
18
- const apiUrl = `https://api.atlassian.com/ex/jira/${cloudId}/rest/api/3/issue/${issueId}`;
19
- const formattedDescription = description
20
- ? {
21
- type: "doc",
22
- version: 1,
23
- content: [
24
- {
25
- type: "paragraph",
26
- content: [
27
- {
28
- type: "text",
29
- text: description,
30
- },
31
- ],
32
- },
33
- ],
34
- }
35
- : undefined;
36
- const payload = {
37
- fields: Object.assign(Object.assign(Object.assign(Object.assign({}, (summary && { summary })), (formattedDescription && { description: formattedDescription })), (priority && { priority: { name: priority } })), (customFields && Object.assign({}, customFields))),
38
- };
39
- try {
40
- yield axiosClient.put(apiUrl, payload, {
41
- headers: {
42
- Authorization: `Bearer ${authToken}`,
43
- Accept: "application/json",
44
- "Content-Type": "application/json",
45
- },
46
- });
47
- // Get the updated issue details to return current status and web link
48
- const getResponse = yield axiosClient.get(apiUrl, {
49
- headers: {
50
- Authorization: `Bearer ${authToken}`,
51
- Accept: "application/json",
52
- },
53
- });
54
- const issueKey = getResponse.data.key;
55
- const currentStatus = getResponse.data.fields.status.name;
56
- const webLink = `${baseUrl}/browse/${issueKey}`;
57
- return {
58
- success: true,
59
- issueKey,
60
- webLink,
61
- currentStatus,
62
- };
63
- }
64
- catch (error) {
65
- console.error("Error updating service desk request:", error);
66
- return {
67
- success: false,
68
- error: error instanceof Error ? error.message : "Unknown error",
69
- };
70
- }
71
- });
72
- export default updateServiceDeskRequest;
@@ -1,3 +0,0 @@
1
- import type { microsoftSendOutlookEmailFunction } from "../../autogen/types.js";
2
- declare const sendEmail: microsoftSendOutlookEmailFunction;
3
- export default sendEmail;
@@ -1,48 +0,0 @@
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 { getGraphClient } from "./utils.js";
11
- const sendEmail = (_a) => __awaiter(void 0, [_a], void 0, function* ({ params, authParams, }) {
12
- const { toRecipients, subject, body, ccRecipients, bccRecipients } = params;
13
- let client = undefined;
14
- try {
15
- client = yield getGraphClient(authParams);
16
- }
17
- catch (error) {
18
- return {
19
- success: false,
20
- error: "Error while authorizing: " + (error instanceof Error ? error.message : "Unknown error"),
21
- };
22
- }
23
- try {
24
- const message = {
25
- message: Object.assign(Object.assign({ subject, body: {
26
- contentType: "HTML",
27
- content: body,
28
- }, toRecipients: toRecipients.map(email => ({ emailAddress: { address: email } })) }, (ccRecipients && ccRecipients.length > 0
29
- ? { ccRecipients: ccRecipients.map(email => ({ emailAddress: { address: email } })) }
30
- : {})), (bccRecipients && bccRecipients.length > 0
31
- ? { bccRecipients: bccRecipients.map(email => ({ emailAddress: { address: email } })) }
32
- : {})),
33
- saveToSentItems: true,
34
- };
35
- yield client.api("/me/sendMail").post(message);
36
- return {
37
- success: true,
38
- };
39
- }
40
- catch (error) {
41
- console.error(error);
42
- return {
43
- success: false,
44
- error: "Error sending email: " + (error instanceof Error ? error.message : "Unknown error"),
45
- };
46
- }
47
- });
48
- export default sendEmail;