@activepieces/piece-microsoft-copilot 0.0.1
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/package.json +19 -0
- package/src/index.d.ts +2 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +32 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/chat-with-copilot.d.ts +7 -0
- package/src/lib/actions/chat-with-copilot.d.ts.map +1 -0
- package/src/lib/actions/chat-with-copilot.js +111 -0
- package/src/lib/actions/chat-with-copilot.js.map +1 -0
- package/src/lib/actions/retrieve-grounding-data.d.ts +9 -0
- package/src/lib/actions/retrieve-grounding-data.d.ts.map +1 -0
- package/src/lib/actions/retrieve-grounding-data.js +105 -0
- package/src/lib/actions/retrieve-grounding-data.js.map +1 -0
- package/src/lib/actions/search-copilot.d.ts +6 -0
- package/src/lib/actions/search-copilot.d.ts.map +1 -0
- package/src/lib/actions/search-copilot.js +68 -0
- package/src/lib/actions/search-copilot.js.map +1 -0
- package/src/lib/common/auth.d.ts +2 -0
- package/src/lib/common/auth.d.ts.map +1 -0
- package/src/lib/common/auth.js +39 -0
- package/src/lib/common/auth.js.map +1 -0
- package/src/lib/triggers/copilot-interaction-webhook.d.ts +23 -0
- package/src/lib/triggers/copilot-interaction-webhook.d.ts.map +1 -0
- package/src/lib/triggers/copilot-interaction-webhook.js +140 -0
- package/src/lib/triggers/copilot-interaction-webhook.js.map +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activepieces/piece-microsoft-copilot",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "./src/index.js",
|
|
6
|
+
"types": "./src/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@activepieces/pieces-common": "0.12.0",
|
|
9
|
+
"@activepieces/pieces-framework": "0.26.0",
|
|
10
|
+
"@activepieces/shared": "0.46.0",
|
|
11
|
+
"@microsoft/microsoft-graph-client": "3.0.7",
|
|
12
|
+
"@microsoft/microsoft-graph-types": "2.40.0",
|
|
13
|
+
"tslib": "2.6.2"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc -p tsconfig.lib.json && cp package.json dist/",
|
|
17
|
+
"lint": "eslint 'src/**/*.ts'"
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB,+JAmB9B,CAAC"}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.microsoft365Copilot = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("./lib/common/auth");
|
|
7
|
+
const chat_with_copilot_1 = require("./lib/actions/chat-with-copilot");
|
|
8
|
+
const search_copilot_1 = require("./lib/actions/search-copilot");
|
|
9
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
10
|
+
exports.microsoft365Copilot = (0, pieces_framework_1.createPiece)({
|
|
11
|
+
displayName: 'Microsoft 365 Copilot',
|
|
12
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
13
|
+
minimumSupportedRelease: '0.36.1',
|
|
14
|
+
logoUrl: 'https://cdn.activepieces.com/pieces/microsoft-copilot.png',
|
|
15
|
+
authors: ['sanket-a11y'],
|
|
16
|
+
actions: [
|
|
17
|
+
chat_with_copilot_1.chatWithCopilot,
|
|
18
|
+
search_copilot_1.searchCopilot,
|
|
19
|
+
// retrieveGroundingData,
|
|
20
|
+
(0, pieces_common_1.createCustomApiCallAction)({
|
|
21
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
22
|
+
baseUrl: () => 'https://graph.microsoft.com/',
|
|
23
|
+
authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
return ({
|
|
25
|
+
Authorization: `Bearer ${auth.access_token}`,
|
|
26
|
+
});
|
|
27
|
+
}),
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
30
|
+
triggers: [],
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAGwC;AACxC,4CAA4D;AAC5D,uEAAkE;AAClE,iEAA6D;AAC7D,+DAAwE;AAE3D,QAAA,mBAAmB,GAAG,IAAA,8BAAW,EAAC;IAC7C,WAAW,EAAE,uBAAuB;IACpC,IAAI,EAAE,8BAAuB;IAC7B,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,2DAA2D;IACpE,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,OAAO,EAAE;QACP,mCAAe;QACf,8BAAa;QACb,yBAAyB;QACzB,IAAA,yCAAyB,EAAC;YACxB,IAAI,EAAE,8BAAuB;YAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,8BAA8B;YAC7C,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAW,IAA4B,CAAC,YAAY,EAAE;iBACtE,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const chatWithCopilot: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
conversationId: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
3
|
+
messageText: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
4
|
+
timeZone: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
5
|
+
enableWebSearch: import("@activepieces/pieces-framework").CheckboxProperty<false>;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=chat-with-copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-with-copilot.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/chat-with-copilot.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;EAqH1B,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chatWithCopilot = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../common/auth");
|
|
7
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
8
|
+
exports.chatWithCopilot = (0, pieces_framework_1.createAction)({
|
|
9
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
10
|
+
name: 'chatWithCopilot',
|
|
11
|
+
displayName: 'Chat with Copilot',
|
|
12
|
+
description: 'Send a message to an existing Copilot conversation or creating a new one and get a response',
|
|
13
|
+
props: {
|
|
14
|
+
conversationId: pieces_framework_1.Property.ShortText({
|
|
15
|
+
displayName: 'Conversation ID',
|
|
16
|
+
description: 'The ID of an existing conversation. If not provided, a new conversation will be created.',
|
|
17
|
+
required: false,
|
|
18
|
+
}),
|
|
19
|
+
messageText: pieces_framework_1.Property.LongText({
|
|
20
|
+
displayName: 'Message Text',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
timeZone: pieces_framework_1.Property.ShortText({
|
|
24
|
+
displayName: 'Time Zone',
|
|
25
|
+
description: 'User location time zone in IANA format (e.g., America/New_York, Europe/London)',
|
|
26
|
+
required: true,
|
|
27
|
+
defaultValue: 'UTC',
|
|
28
|
+
}),
|
|
29
|
+
// additionalContext: Property.Json({
|
|
30
|
+
// displayName: 'Additional Context (optional)',
|
|
31
|
+
// description:
|
|
32
|
+
// 'Array of context objects with "text" and optional "description" properties',
|
|
33
|
+
// required: false,
|
|
34
|
+
// }),
|
|
35
|
+
// contextFiles: Property.Json({
|
|
36
|
+
// displayName: 'Context Files (optional)',
|
|
37
|
+
// description:
|
|
38
|
+
// 'Array of file objects with "uri" property pointing to OneDrive/SharePoint files',
|
|
39
|
+
// required: false,
|
|
40
|
+
// }),
|
|
41
|
+
enableWebSearch: pieces_framework_1.Property.Checkbox({
|
|
42
|
+
displayName: 'Enable Web Search Grounding',
|
|
43
|
+
required: false,
|
|
44
|
+
defaultValue: true,
|
|
45
|
+
}),
|
|
46
|
+
},
|
|
47
|
+
run(context) {
|
|
48
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const { conversationId, messageText, timeZone,
|
|
50
|
+
// additionalContext,
|
|
51
|
+
// contextFiles,
|
|
52
|
+
enableWebSearch, } = context.propsValue;
|
|
53
|
+
let activeConversationId = conversationId;
|
|
54
|
+
if (!activeConversationId) {
|
|
55
|
+
const createResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
56
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
57
|
+
url: 'https://graph.microsoft.com/beta/copilot/conversations',
|
|
58
|
+
headers: {
|
|
59
|
+
Authorization: `Bearer ${context.auth.access_token}`,
|
|
60
|
+
'Content-Type': 'application/json',
|
|
61
|
+
},
|
|
62
|
+
body: {}
|
|
63
|
+
});
|
|
64
|
+
activeConversationId = createResponse.body.id;
|
|
65
|
+
}
|
|
66
|
+
const locationHint = {
|
|
67
|
+
timeZone: timeZone,
|
|
68
|
+
};
|
|
69
|
+
const body = {
|
|
70
|
+
message: {
|
|
71
|
+
text: messageText,
|
|
72
|
+
},
|
|
73
|
+
locationHint,
|
|
74
|
+
};
|
|
75
|
+
// if (
|
|
76
|
+
// additionalContext &&
|
|
77
|
+
// Array.isArray(additionalContext) &&
|
|
78
|
+
// additionalContext.length > 0
|
|
79
|
+
// ) {
|
|
80
|
+
// body.additionalContext = additionalContext;
|
|
81
|
+
// }
|
|
82
|
+
const contextualResources = {};
|
|
83
|
+
// if (
|
|
84
|
+
// contextFiles &&
|
|
85
|
+
// Array.isArray(contextFiles) &&
|
|
86
|
+
// contextFiles.length > 0
|
|
87
|
+
// ) {
|
|
88
|
+
// contextualResources.files = contextFiles as any;
|
|
89
|
+
// }
|
|
90
|
+
if (enableWebSearch !== undefined) {
|
|
91
|
+
contextualResources.webContext = {
|
|
92
|
+
isWebEnabled: enableWebSearch,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (Object.keys(contextualResources).length > 0) {
|
|
96
|
+
body.contextualResources = contextualResources;
|
|
97
|
+
}
|
|
98
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
99
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
100
|
+
url: `https://graph.microsoft.com/beta/copilot/conversations/${activeConversationId}/chat`,
|
|
101
|
+
headers: {
|
|
102
|
+
Authorization: `Bearer ${context.auth.access_token}`,
|
|
103
|
+
'Content-Type': 'application/json',
|
|
104
|
+
},
|
|
105
|
+
body: JSON.stringify(body),
|
|
106
|
+
});
|
|
107
|
+
return response.body.messages[1];
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
//# sourceMappingURL=chat-with-copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-with-copilot.js","sourceRoot":"","sources":["../../../../src/lib/actions/chat-with-copilot.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,yCAAyD;AACzD,+DAAqE;AAExD,QAAA,eAAe,GAAG,IAAA,+BAAY,EAAC;IAC1C,IAAI,EAAE,8BAAuB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EACT,6FAA6F;IAC/F,KAAK,EAAE;QACL,cAAc,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACjC,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACT,0FAA0F;YAC5F,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC7B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,WAAW,EACT,gFAAgF;YAClF,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,qCAAqC;QACrC,kDAAkD;QAClD,iBAAiB;QACjB,oFAAoF;QACpF,qBAAqB;QACrB,MAAM;QACN,gCAAgC;QAChC,6CAA6C;QAC7C,iBAAiB;QACjB,yFAAyF;QACzF,qBAAqB;QACrB,MAAM;QACN,eAAe,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACjC,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;SACnB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EACJ,cAAc,EACd,WAAW,EACX,QAAQ;YACR,qBAAqB;YACrB,gBAAgB;YAChB,eAAe,GAChB,GAAG,OAAO,CAAC,UAAU,CAAC;YAEvB,IAAI,oBAAoB,GAAG,cAAc,CAAC;YAC1C,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAClD,MAAM,EAAE,0BAAU,CAAC,IAAI;oBACvB,GAAG,EAAE,wDAAwD;oBAC7D,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;wBACpD,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBAEH,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,CAAC;YAED,MAAM,YAAY,GAAQ;gBACxB,QAAQ,EAAE,QAAQ;aACnB,CAAC;YAEF,MAAM,IAAI,GAAQ;gBAChB,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;iBAClB;gBACD,YAAY;aACb,CAAC;YAEF,OAAO;YACP,yBAAyB;YACzB,wCAAwC;YACxC,iCAAiC;YACjC,MAAM;YACN,gDAAgD;YAChD,IAAI;YAEJ,MAAM,mBAAmB,GAAQ,EAAE,CAAC;YAEpC,OAAO;YACP,oBAAoB;YACpB,mCAAmC;YACnC,4BAA4B;YAC5B,MAAM;YACN,qDAAqD;YACrD,IAAI;YAEJ,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,mBAAmB,CAAC,UAAU,GAAG;oBAC/B,YAAY,EAAE,eAAe;iBACvB,CAAC;YACX,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,mBAAmB,GAAG,mBAA0B,CAAC;YACxD,CAAC;YAED,MAAM,QAAQ,GAAQ,MAAM,0BAAU,CAAC,WAAW,CAAC;gBACjD,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,0DAA0D,oBAAoB,OAAO;gBAC1F,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;oBACpD,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const retrieveGroundingData: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
queryString: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
dataSource: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
4
|
+
filterExpression: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
5
|
+
resourceMetadata: import("@activepieces/pieces-framework").JsonProperty<false>;
|
|
6
|
+
maximumNumberOfResults: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
7
|
+
connectionIds: import("@activepieces/pieces-framework").JsonProperty<false>;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=retrieve-grounding-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve-grounding-data.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/retrieve-grounding-data.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB;;;;;;;EA0HhC,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retrieveGroundingData = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../common/auth");
|
|
7
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
8
|
+
exports.retrieveGroundingData = (0, pieces_framework_1.createAction)({
|
|
9
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
10
|
+
name: 'retrieveGroundingData',
|
|
11
|
+
displayName: 'Retrieve Grounding Data',
|
|
12
|
+
description: 'Retrieve relevant text extracts from SharePoint, OneDrive, or Copilot connectors content for grounding AI solutions',
|
|
13
|
+
props: {
|
|
14
|
+
queryString: pieces_framework_1.Property.LongText({
|
|
15
|
+
displayName: 'Query String',
|
|
16
|
+
description: 'Natural language query to retrieve relevant text extracts (max 1500 characters)',
|
|
17
|
+
required: true,
|
|
18
|
+
}),
|
|
19
|
+
dataSource: pieces_framework_1.Property.StaticDropdown({
|
|
20
|
+
displayName: 'Data Source',
|
|
21
|
+
description: 'Where to retrieve the grounding data from',
|
|
22
|
+
required: true,
|
|
23
|
+
options: {
|
|
24
|
+
options: [
|
|
25
|
+
{
|
|
26
|
+
label: 'SharePoint',
|
|
27
|
+
value: 'sharePoint',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'OneDrive',
|
|
31
|
+
value: 'oneDriveBusiness',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: 'Copilot Connectors',
|
|
35
|
+
value: 'externalItem',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
filterExpression: pieces_framework_1.Property.LongText({
|
|
41
|
+
displayName: 'Filter Expression (optional)',
|
|
42
|
+
description: 'KQL expression to scope the retrieval (e.g., Author:"John Doe", FileExtension:"docx")',
|
|
43
|
+
required: false,
|
|
44
|
+
}),
|
|
45
|
+
resourceMetadata: pieces_framework_1.Property.Json({
|
|
46
|
+
displayName: 'Resource Metadata (optional)',
|
|
47
|
+
description: 'Array of metadata fields to return for each item (e.g., ["title", "author"])',
|
|
48
|
+
required: false,
|
|
49
|
+
}),
|
|
50
|
+
maximumNumberOfResults: pieces_framework_1.Property.Number({
|
|
51
|
+
displayName: 'Maximum Number of Results',
|
|
52
|
+
description: 'Number of results to return (1-25)',
|
|
53
|
+
required: false,
|
|
54
|
+
defaultValue: 25,
|
|
55
|
+
}),
|
|
56
|
+
connectionIds: pieces_framework_1.Property.Json({
|
|
57
|
+
displayName: 'Connection IDs (optional)',
|
|
58
|
+
description: 'Array of Copilot connector IDs to search (only for Copilot Connectors)',
|
|
59
|
+
required: false,
|
|
60
|
+
}),
|
|
61
|
+
},
|
|
62
|
+
run(context) {
|
|
63
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const { queryString, dataSource, filterExpression, resourceMetadata, maximumNumberOfResults, connectionIds, } = context.propsValue;
|
|
65
|
+
const body = {
|
|
66
|
+
queryString,
|
|
67
|
+
dataSource: dataSource,
|
|
68
|
+
};
|
|
69
|
+
if (filterExpression) {
|
|
70
|
+
body.filterExpression = filterExpression;
|
|
71
|
+
}
|
|
72
|
+
if (resourceMetadata &&
|
|
73
|
+
Array.isArray(resourceMetadata) &&
|
|
74
|
+
resourceMetadata.length > 0) {
|
|
75
|
+
body.resourceMetadata = resourceMetadata;
|
|
76
|
+
}
|
|
77
|
+
if (maximumNumberOfResults) {
|
|
78
|
+
body.maximumNumberOfResults = Math.min(Math.max(maximumNumberOfResults, 1), 25);
|
|
79
|
+
}
|
|
80
|
+
if (dataSource === 'externalItem' &&
|
|
81
|
+
connectionIds &&
|
|
82
|
+
Array.isArray(connectionIds) &&
|
|
83
|
+
connectionIds.length > 0) {
|
|
84
|
+
body.dataSourceConfiguration = {
|
|
85
|
+
externalItem: {
|
|
86
|
+
connections: connectionIds.map((connectionId) => ({
|
|
87
|
+
connectionId,
|
|
88
|
+
})),
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
93
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
94
|
+
url: 'https://graph.microsoft.com/beta/copilot/retrieval',
|
|
95
|
+
headers: {
|
|
96
|
+
Authorization: `Bearer ${context.auth.access_token}`,
|
|
97
|
+
'Content-Type': 'application/json',
|
|
98
|
+
},
|
|
99
|
+
body: JSON.stringify(body),
|
|
100
|
+
});
|
|
101
|
+
return response.body;
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=retrieve-grounding-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve-grounding-data.js","sourceRoot":"","sources":["../../../../src/lib/actions/retrieve-grounding-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const searchCopilot: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
query: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
filterExpression: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
4
|
+
resourceMetadata: import("@activepieces/pieces-framework").JsonProperty<false>;
|
|
5
|
+
}>;
|
|
6
|
+
//# sourceMappingURL=search-copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-copilot.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/search-copilot.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;EAmExB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.searchCopilot = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../common/auth");
|
|
7
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
8
|
+
exports.searchCopilot = (0, pieces_framework_1.createAction)({
|
|
9
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
10
|
+
name: 'searchCopilot',
|
|
11
|
+
displayName: 'Search Copilot',
|
|
12
|
+
description: 'Perform hybrid (semantic and lexical) search across OneDrive for work or school content using natural language queries',
|
|
13
|
+
props: {
|
|
14
|
+
query: pieces_framework_1.Property.LongText({
|
|
15
|
+
displayName: 'Search Query',
|
|
16
|
+
description: 'Natural language query to search for relevant files. Maximum 1,500 characters.',
|
|
17
|
+
required: true,
|
|
18
|
+
}),
|
|
19
|
+
filterExpression: pieces_framework_1.Property.LongText({
|
|
20
|
+
displayName: 'Filter Expression (Optional)',
|
|
21
|
+
description: 'KQL filter expression for OneDrive data source (https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference). Example: path:"https://contoso-my.sharepoint.com/personal/user/Documents/"',
|
|
22
|
+
required: false,
|
|
23
|
+
}),
|
|
24
|
+
resourceMetadata: pieces_framework_1.Property.Json({
|
|
25
|
+
displayName: 'Resource Metadata Names (Optional)',
|
|
26
|
+
description: 'Array of metadata field names to include in results. Example: ["title", "author"]',
|
|
27
|
+
required: false,
|
|
28
|
+
}),
|
|
29
|
+
},
|
|
30
|
+
run(context) {
|
|
31
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const { query, filterExpression, resourceMetadata } = context.propsValue;
|
|
33
|
+
const requestBody = {
|
|
34
|
+
query: query,
|
|
35
|
+
};
|
|
36
|
+
if (filterExpression || resourceMetadata) {
|
|
37
|
+
requestBody.dataSources = {
|
|
38
|
+
oneDrive: {},
|
|
39
|
+
};
|
|
40
|
+
if (filterExpression) {
|
|
41
|
+
requestBody.dataSources.oneDrive.filterExpression = filterExpression;
|
|
42
|
+
}
|
|
43
|
+
if (resourceMetadata) {
|
|
44
|
+
const metadataArray = Array.isArray(resourceMetadata)
|
|
45
|
+
? resourceMetadata
|
|
46
|
+
: typeof resourceMetadata === 'string'
|
|
47
|
+
? JSON.parse(resourceMetadata)
|
|
48
|
+
: [];
|
|
49
|
+
if (metadataArray.length > 0) {
|
|
50
|
+
requestBody.dataSources.oneDrive.resourceMetadataNames =
|
|
51
|
+
metadataArray;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
56
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
57
|
+
url: 'https://graph.microsoft.com/beta/copilot/search',
|
|
58
|
+
headers: {
|
|
59
|
+
Authorization: `Bearer ${context.auth.access_token}`,
|
|
60
|
+
'Content-Type': 'application/json',
|
|
61
|
+
},
|
|
62
|
+
body: JSON.stringify(requestBody),
|
|
63
|
+
});
|
|
64
|
+
return response.body;
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=search-copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-copilot.js","sourceRoot":"","sources":["../../../../src/lib/actions/search-copilot.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,yCAAyD;AACzD,+DAAqE;AAExD,QAAA,aAAa,GAAG,IAAA,+BAAY,EAAC;IACxC,IAAI,EAAE,8BAAuB;IAC7B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,wHAAwH;IAC1H,KAAK,EAAE;QACL,KAAK,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACvB,WAAW,EAAE,cAAc;YAC3B,WAAW,EACT,gFAAgF;YAClF,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,gBAAgB,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EACT,+OAA+O;YACjP,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,gBAAgB,EAAE,2BAAQ,CAAC,IAAI,CAAC;YAC9B,WAAW,EAAE,oCAAoC;YACjD,WAAW,EACT,mFAAmF;YACrF,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEzE,MAAM,WAAW,GAAQ;gBACvB,KAAK,EAAE,KAAK;aACb,CAAC;YAEF,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;gBACzC,WAAW,CAAC,WAAW,GAAG;oBACxB,QAAQ,EAAE,EAAE;iBACb,CAAC;gBAEF,IAAI,gBAAgB,EAAE,CAAC;oBACrB,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;gBACvE,CAAC;gBAED,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;wBACnD,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,OAAO,gBAAgB,KAAK,QAAQ;4BACtC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;4BAC9B,CAAC,CAAC,EAAE,CAAC;oBACP,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB;4BACpD,aAAa,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAQ,MAAM,0BAAU,CAAC,WAAW,CAAC;gBACjD,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,iDAAiD;gBACtD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;oBACpD,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,uBAAuB,+GAkBlC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.microsoft365CopilotAuth = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const authDesc = `
|
|
6
|
+
**Note:** This piece requires a **Microsoft 365 Copilot license** to access Copilot interaction data.
|
|
7
|
+
|
|
8
|
+
If you’d like to use your own custom Azure app instead of the default Activepieces app, follow the [Azure app creation guide](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app#register-an-application),
|
|
9
|
+
set the **Redirect URI** to {{redirectUrl}} and add the following **Microsoft Graph (Delegated) permissions** under **API permissions**:
|
|
10
|
+
- Sites.Read.All
|
|
11
|
+
- Mail.Read
|
|
12
|
+
- Files.ReadWrite.All
|
|
13
|
+
- People.Read.All
|
|
14
|
+
- OnlineMeetingTranscript.Read.All
|
|
15
|
+
- Chat.Read
|
|
16
|
+
- ChannelMessage.Read.All
|
|
17
|
+
- ExternalItem.Read.All
|
|
18
|
+
- AiEnterpriseInteraction.Read
|
|
19
|
+
- Files.Read.All`;
|
|
20
|
+
exports.microsoft365CopilotAuth = pieces_framework_1.PieceAuth.OAuth2({
|
|
21
|
+
description: authDesc,
|
|
22
|
+
authUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
|
|
23
|
+
tokenUrl: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
|
|
24
|
+
required: true,
|
|
25
|
+
scope: [
|
|
26
|
+
'Sites.Read.All',
|
|
27
|
+
'Mail.Read',
|
|
28
|
+
'Files.ReadWrite.All',
|
|
29
|
+
'People.Read.All',
|
|
30
|
+
'OnlineMeetingTranscript.Read.All',
|
|
31
|
+
'Chat.Read',
|
|
32
|
+
'ChannelMessage.Read.All',
|
|
33
|
+
'ExternalItem.Read.All',
|
|
34
|
+
'AiEnterpriseInteraction.Read',
|
|
35
|
+
'Files.Read.All',
|
|
36
|
+
],
|
|
37
|
+
prompt: 'omit',
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":";;;AAAA,qEAA2D;AAE3D,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;kBAcC,CAAC;AAEN,QAAA,uBAAuB,GAAG,4BAAS,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,gEAAgE;IACzE,QAAQ,EAAE,4DAA4D;IACtE,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,gBAAgB;QAChB,WAAW;QACX,qBAAqB;QACrB,iBAAiB;QACjB,kCAAkC;QAClC,WAAW;QACX,yBAAyB;QACzB,uBAAuB;QACvB,8BAA8B;QAC9B,gBAAgB;KACjB;IACD,MAAM,EAAE,MAAM;CACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
|
2
|
+
export declare const copilotInteractionWebhook: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
3
|
+
scope: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
4
|
+
userId: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
+
changeTypes: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
6
|
+
expirationHours: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
7
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
8
|
+
scope: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
9
|
+
userId: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
+
changeTypes: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
11
|
+
expirationHours: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
12
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
13
|
+
scope: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
14
|
+
userId: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
15
|
+
changeTypes: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
16
|
+
expirationHours: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
17
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
18
|
+
scope: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
19
|
+
userId: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
20
|
+
changeTypes: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
21
|
+
expirationHours: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=copilot-interaction-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-interaction-webhook.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/copilot-interaction-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AAIxC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;EA4IpC,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.copilotInteractionWebhook = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const auth_1 = require("../common/auth");
|
|
7
|
+
const microsoft_graph_client_1 = require("@microsoft/microsoft-graph-client");
|
|
8
|
+
exports.copilotInteractionWebhook = (0, pieces_framework_1.createTrigger)({
|
|
9
|
+
auth: auth_1.microsoft365CopilotAuth,
|
|
10
|
+
name: 'copilotInteractionWebhook',
|
|
11
|
+
displayName: 'When Copilot creates or updates an interaction',
|
|
12
|
+
description: 'Trigger when a new Copilot AI interaction is created, updated, or deleted',
|
|
13
|
+
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
14
|
+
props: {
|
|
15
|
+
scope: pieces_framework_1.Property.StaticDropdown({
|
|
16
|
+
displayName: 'Notify me about interactions from',
|
|
17
|
+
description: 'Choose whether to monitor a specific user or the entire organization',
|
|
18
|
+
required: true,
|
|
19
|
+
options: {
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
label: 'Specific User',
|
|
23
|
+
value: 'user',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: 'Entire Organization',
|
|
27
|
+
value: 'tenant',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
userId: pieces_framework_1.Property.ShortText({
|
|
33
|
+
displayName: 'User ID',
|
|
34
|
+
description: 'The ID of the user to monitor (required for Specific User scope)',
|
|
35
|
+
required: false,
|
|
36
|
+
}),
|
|
37
|
+
changeTypes: pieces_framework_1.Property.StaticMultiSelectDropdown({
|
|
38
|
+
displayName: 'What changes should trigger?',
|
|
39
|
+
description: 'Select which types of changes to monitor',
|
|
40
|
+
required: true,
|
|
41
|
+
options: {
|
|
42
|
+
options: [
|
|
43
|
+
{
|
|
44
|
+
label: 'New Interactions Created',
|
|
45
|
+
value: 'created',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Interactions Updated',
|
|
49
|
+
value: 'updated',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: 'Interactions Deleted',
|
|
53
|
+
value: 'deleted',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
expirationHours: pieces_framework_1.Property.Number({
|
|
59
|
+
displayName: 'Subscription Duration (hours)',
|
|
60
|
+
description: 'How long should the subscription be active (1-24 hours)',
|
|
61
|
+
required: false,
|
|
62
|
+
defaultValue: 24,
|
|
63
|
+
}),
|
|
64
|
+
},
|
|
65
|
+
sampleData: {
|
|
66
|
+
subscriptionId: '10493aa0-4d29-4df5-bc0c-ef742cc6cd7f',
|
|
67
|
+
changeType: 'created',
|
|
68
|
+
clientState: 'activepieces-copilot-trigger',
|
|
69
|
+
subscriptionExpirationDateTime: new Date().toISOString(),
|
|
70
|
+
resource: "copilot/interactionHistory/interactions('1731701801008')",
|
|
71
|
+
resourceData: {
|
|
72
|
+
id: '1731701801008',
|
|
73
|
+
'@odata.type': '#Microsoft.Graph.aiInteraction',
|
|
74
|
+
'@odata.id': "copilot/interactionHistory/interactions('1731701801008')",
|
|
75
|
+
},
|
|
76
|
+
tenantId: 'tenant-id-example',
|
|
77
|
+
},
|
|
78
|
+
onEnable(context) {
|
|
79
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const { scope, userId, changeTypes, expirationHours } = context.propsValue;
|
|
81
|
+
const client = microsoft_graph_client_1.Client.initWithMiddleware({
|
|
82
|
+
authProvider: {
|
|
83
|
+
getAccessToken: () => Promise.resolve(context.auth.access_token),
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
// Build the resource path
|
|
87
|
+
let resourcePath = '';
|
|
88
|
+
if (scope === 'user' && userId) {
|
|
89
|
+
resourcePath = `/copilot/users/${userId}/interactionHistory/getAllEnterpriseInteractions`;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
resourcePath = `/copilot/interactionHistory/getAllEnterpriseInteractions`;
|
|
93
|
+
}
|
|
94
|
+
// Add filters if specified
|
|
95
|
+
const filters = [];
|
|
96
|
+
filters.push("interactionType eq 'aiResponse'");
|
|
97
|
+
if (filters.length > 0) {
|
|
98
|
+
resourcePath += `?$filter=${filters.join(' AND ')}`;
|
|
99
|
+
}
|
|
100
|
+
const expirationDateTime = new Date();
|
|
101
|
+
expirationDateTime.setHours(expirationDateTime.getHours() + (expirationHours || 24));
|
|
102
|
+
const subscriptionBody = {
|
|
103
|
+
changeType: changeTypes.join(','),
|
|
104
|
+
notificationUrl: context.webhookUrl,
|
|
105
|
+
resource: resourcePath,
|
|
106
|
+
includeResourceData: true,
|
|
107
|
+
expirationDateTime: expirationDateTime.toISOString(),
|
|
108
|
+
clientState: 'activepieces-copilot-trigger',
|
|
109
|
+
};
|
|
110
|
+
const subscription = yield client
|
|
111
|
+
.api('v1.0/subscriptions')
|
|
112
|
+
.post(subscriptionBody);
|
|
113
|
+
yield context.store.put('subscription_id', subscription.id);
|
|
114
|
+
});
|
|
115
|
+
},
|
|
116
|
+
onDisable(context) {
|
|
117
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
118
|
+
const client = microsoft_graph_client_1.Client.initWithMiddleware({
|
|
119
|
+
authProvider: {
|
|
120
|
+
getAccessToken: () => Promise.resolve(context.auth.access_token),
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
const subscriptionId = yield context.store.get('subscription_id');
|
|
124
|
+
if (subscriptionId) {
|
|
125
|
+
try {
|
|
126
|
+
yield client.api(`v1.0/subscriptions/${subscriptionId}`).delete();
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error('Error deleting subscription:', error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
run(context) {
|
|
135
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
return [context.payload.body];
|
|
137
|
+
});
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=copilot-interaction-webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-interaction-webhook.js","sourceRoot":"","sources":["../../../../src/lib/triggers/copilot-interaction-webhook.ts"],"names":[],"mappings":"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"}
|