@microsoft/agents-copilotstudio-client 1.2.2 → 1.3.0-beta.10.gf7fc2bf267
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.
|
@@ -10,6 +10,24 @@ const agents_activity_1 = require("@microsoft/agents-activity");
|
|
|
10
10
|
const rxjs_1 = require("rxjs");
|
|
11
11
|
const logger_1 = require("@microsoft/agents-activity/logger");
|
|
12
12
|
const logger = (0, logger_1.debug)('copilot-studio:webchat');
|
|
13
|
+
/**
|
|
14
|
+
* Creates a wrapper that invokes `fn` at most once.
|
|
15
|
+
* On the first call the wrapper invokes `fn(value)` and returns whatever `fn` returns.
|
|
16
|
+
* Subsequent calls do nothing and return `undefined`.
|
|
17
|
+
*
|
|
18
|
+
* @template T - Type of the single argument passed to the wrapped function.
|
|
19
|
+
* @param fn Function to be invoked once.
|
|
20
|
+
* @returns A wrapper function that calls `fn` at most once.
|
|
21
|
+
*/
|
|
22
|
+
function once(fn) {
|
|
23
|
+
let called = false;
|
|
24
|
+
return value => {
|
|
25
|
+
if (!called) {
|
|
26
|
+
called = true;
|
|
27
|
+
return fn(value);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
13
31
|
/**
|
|
14
32
|
* A utility class that provides WebChat integration capabilities for Copilot Studio services.
|
|
15
33
|
*
|
|
@@ -129,10 +147,10 @@ class CopilotStudioWebChat {
|
|
|
129
147
|
const connectionStatus$ = new rxjs_1.BehaviorSubject(0);
|
|
130
148
|
const activity$ = createObservable(async (subscriber) => {
|
|
131
149
|
activitySubscriber = subscriber;
|
|
132
|
-
const handleAcknowledgementOnce = async () => {
|
|
150
|
+
const handleAcknowledgementOnce = once(async () => {
|
|
133
151
|
connectionStatus$.next(2);
|
|
134
|
-
await
|
|
135
|
-
};
|
|
152
|
+
await Promise.resolve(); // Webchat requires an extra tick to process the connection status change
|
|
153
|
+
});
|
|
136
154
|
logger.debug('--> Connection established.');
|
|
137
155
|
notifyTyping();
|
|
138
156
|
if (connectionStatus$.value < 2) {
|
|
@@ -144,6 +162,8 @@ class CopilotStudioWebChat {
|
|
|
144
162
|
}
|
|
145
163
|
notifyActivity(activity);
|
|
146
164
|
}
|
|
165
|
+
// If no activities received from bot, we should still acknowledge.
|
|
166
|
+
await handleAcknowledgementOnce();
|
|
147
167
|
}
|
|
148
168
|
});
|
|
149
169
|
const notifyActivity = (activity) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotStudioWebChat.js","sourceRoot":"","sources":["../../src/copilotStudioWebChat.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAAiC;AAEjC,gEAAsF;AACtF,+BAAmE;AAGnE,8DAAyD;AAEzD,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,wBAAwB,CAAC,CAAA;AA4E9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAa,oBAAoB;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAA2B,EAC3B,QAAuC;QAEvC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;QAC7E,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,kBAA6D,CAAA;QACjE,IAAI,YAA6C,CAAA;QAEjD,MAAM,iBAAiB,GAAG,IAAI,sBAAe,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,SAAS,GAAG,gBAAgB,CAAoB,KAAK,EAAE,UAAU,EAAE,EAAE;YACzE,kBAAkB,GAAG,UAAU,CAAA;YAE/B,MAAM,yBAAyB,GAAG,KAAK,IAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"copilotStudioWebChat.js","sourceRoot":"","sources":["../../src/copilotStudioWebChat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/agents-copilotstudio-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0-beta.10.gf7fc2bf267",
|
|
4
4
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"build:browser": "esbuild --platform=browser --target=es2019 --format=esm --bundle --sourcemap --minify --outfile=dist/src/browser.mjs src/index.ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@microsoft/agents-activity": "1.
|
|
30
|
+
"@microsoft/agents-activity": "1.3.0-beta.10.gf7fc2bf267",
|
|
31
31
|
"eventsource-client": "^1.2.0",
|
|
32
32
|
"rxjs": "7.8.2",
|
|
33
33
|
"uuid": "^11.1.0"
|
|
@@ -87,6 +87,27 @@ export interface CopilotStudioWebChatConnection {
|
|
|
87
87
|
end(): void;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Creates a wrapper that invokes `fn` at most once.
|
|
92
|
+
* On the first call the wrapper invokes `fn(value)` and returns whatever `fn` returns.
|
|
93
|
+
* Subsequent calls do nothing and return `undefined`.
|
|
94
|
+
*
|
|
95
|
+
* @template T - Type of the single argument passed to the wrapped function.
|
|
96
|
+
* @param fn Function to be invoked once.
|
|
97
|
+
* @returns A wrapper function that calls `fn` at most once.
|
|
98
|
+
*/
|
|
99
|
+
function once<T = void> (fn: (value: T) => Promise<void>): (value: T) => Promise<void> | void {
|
|
100
|
+
let called = false
|
|
101
|
+
|
|
102
|
+
return value => {
|
|
103
|
+
if (!called) {
|
|
104
|
+
called = true
|
|
105
|
+
|
|
106
|
+
return fn(value)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
90
111
|
/**
|
|
91
112
|
* A utility class that provides WebChat integration capabilities for Copilot Studio services.
|
|
92
113
|
*
|
|
@@ -211,10 +232,10 @@ export class CopilotStudioWebChat {
|
|
|
211
232
|
const activity$ = createObservable<Partial<Activity>>(async (subscriber) => {
|
|
212
233
|
activitySubscriber = subscriber
|
|
213
234
|
|
|
214
|
-
const handleAcknowledgementOnce = async (): Promise<void> => {
|
|
235
|
+
const handleAcknowledgementOnce = once(async (): Promise<void> => {
|
|
215
236
|
connectionStatus$.next(2)
|
|
216
|
-
await
|
|
217
|
-
}
|
|
237
|
+
await Promise.resolve() // Webchat requires an extra tick to process the connection status change
|
|
238
|
+
})
|
|
218
239
|
|
|
219
240
|
logger.debug('--> Connection established.')
|
|
220
241
|
notifyTyping()
|
|
@@ -229,6 +250,8 @@ export class CopilotStudioWebChat {
|
|
|
229
250
|
|
|
230
251
|
notifyActivity(activity)
|
|
231
252
|
}
|
|
253
|
+
// If no activities received from bot, we should still acknowledge.
|
|
254
|
+
await handleAcknowledgementOnce()
|
|
232
255
|
}
|
|
233
256
|
})
|
|
234
257
|
|