@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 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,2 @@
1
+ export declare const microsoft365Copilot: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -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":"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"}
@@ -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,2 @@
1
+ export declare const microsoft365CopilotAuth: import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>;
2
+ //# sourceMappingURL=auth.d.ts.map
@@ -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":";;;;AAAA,qEAIwC;AACxC,yCAAyD;AACzD,8EAA2D;AAE9C,QAAA,yBAAyB,GAAG,IAAA,gCAAa,EAAC;IACrD,IAAI,EAAE,8BAAuB;IAC7B,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,gDAAgD;IAC7D,WAAW,EACT,2EAA2E;IAC7E,IAAI,EAAE,kCAAe,CAAC,OAAO;IAC7B,KAAK,EAAE;QACL,KAAK,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAC7B,WAAW,EAAE,mCAAmC;YAChD,WAAW,EACT,sEAAsE;YACxE,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,eAAe;wBACtB,KAAK,EAAE,MAAM;qBACd;oBACD;wBACE,KAAK,EAAE,qBAAqB;wBAC5B,KAAK,EAAE,QAAQ;qBAChB;iBACF;aACF;SACF,CAAC;QACF,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EACT,kEAAkE;YACpE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,yBAAyB,CAAC;YAC9C,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,0BAA0B;wBACjC,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,KAAK,EAAE,sBAAsB;wBAC7B,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,KAAK,EAAE,sBAAsB;wBAC7B,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF;SACF,CAAC;QACF,eAAe,EAAE,2BAAQ,CAAC,MAAM,CAAC;YAC/B,WAAW,EAAE,+BAA+B;YAC5C,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;KACH;IACD,UAAU,EAAE;QACV,cAAc,EAAE,sCAAsC;QACtD,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,8BAA8B;QAC3C,8BAA8B,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACxD,QAAQ,EAAE,0DAA0D;QACpE,YAAY,EAAE;YACZ,EAAE,EAAE,eAAe;YACnB,aAAa,EAAE,gCAAgC;YAC/C,WAAW,EAAE,0DAA0D;SACxE;QACD,QAAQ,EAAE,mBAAmB;KAC9B;IACK,QAAQ,CAAC,OAAO;;YACpB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GACnD,OAAO,CAAC,UAAU,CAAC;YAErB,MAAM,MAAM,GAAG,+BAAM,CAAC,kBAAkB,CAAC;gBACvC,YAAY,EAAE;oBACZ,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;iBACjE;aACF,CAAC,CAAC;YAEH,0BAA0B;YAC1B,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC;gBAC/B,YAAY,GAAG,kBAAkB,MAAM,kDAAkD,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,0DAA0D,CAAC;YAC5E,CAAC;YAED,2BAA2B;YAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAEhD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,YAAY,IAAI,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,CAAC;YAED,MAAM,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;YACtC,kBAAkB,CAAC,QAAQ,CACzB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CACxD,CAAC;YAEF,MAAM,gBAAgB,GAAG;gBACvB,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjC,eAAe,EAAE,OAAO,CAAC,UAAU;gBACnC,QAAQ,EAAE,YAAY;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,kBAAkB,EAAE,kBAAkB,CAAC,WAAW,EAAE;gBACpD,WAAW,EAAE,8BAA8B;aAC5C,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,MAAM;iBAC9B,GAAG,CAAC,oBAAoB,CAAC;iBACzB,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1B,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;KAAA;IAEK,SAAS,CAAC,OAAO;;YACrB,MAAM,MAAM,GAAG,+BAAM,CAAC,kBAAkB,CAAC;gBACvC,YAAY,EAAE;oBACZ,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;iBACjE;aACF,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAClE,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;KAAA;CACF,CAAC,CAAC"}