@microsoft/agents-copilotstudio-client 1.1.1 → 1.1.4-geb1c05c291
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/package.json +2 -2
- package/dist/src/browser.mjs +5 -5
- package/dist/src/browser.mjs.map +3 -3
- package/dist/src/copilotStudioClient.js +28 -2
- package/dist/src/copilotStudioClient.js.map +1 -1
- package/dist/src/copilotStudioWebChat.js +12 -7
- package/dist/src/copilotStudioWebChat.js.map +1 -1
- package/package.json +2 -2
- package/src/copilotStudioClient.ts +27 -0
- package/src/copilotStudioWebChat.ts +13 -7
|
@@ -40,8 +40,9 @@ class CopilotStudioClient {
|
|
|
40
40
|
* @returns An async generator yielding the Agent's Activities.
|
|
41
41
|
*/
|
|
42
42
|
async *postRequestAsync(url, body, method = 'POST') {
|
|
43
|
-
var _a, _b;
|
|
43
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
44
44
|
logger.debug(`>>> SEND TO ${url}`);
|
|
45
|
+
const streamMap = new Map();
|
|
45
46
|
const eventSource = (0, eventsource_client_1.createEventSource)({
|
|
46
47
|
url,
|
|
47
48
|
headers: {
|
|
@@ -63,14 +64,39 @@ class CopilotStudioClient {
|
|
|
63
64
|
if (data && event === 'activity') {
|
|
64
65
|
try {
|
|
65
66
|
const activity = agents_activity_1.Activity.fromJson(data);
|
|
67
|
+
// check to see if this activity is part of the streamed response, in which case we need to accumulate the text
|
|
68
|
+
const streamingEntity = (_a = activity.entities) === null || _a === void 0 ? void 0 : _a.find(e => e.type === 'streaminfo' && e.streamType === 'streaming');
|
|
66
69
|
switch (activity.type) {
|
|
67
70
|
case agents_activity_1.ActivityTypes.Message:
|
|
68
71
|
if (!this.conversationId.trim()) { // Did not get it from the header.
|
|
69
|
-
this.conversationId = (
|
|
72
|
+
this.conversationId = (_c = (_b = activity.conversation) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : '';
|
|
70
73
|
logger.debug(`Conversation ID: ${this.conversationId}`);
|
|
71
74
|
}
|
|
72
75
|
yield activity;
|
|
73
76
|
break;
|
|
77
|
+
case agents_activity_1.ActivityTypes.Typing:
|
|
78
|
+
logger.debug(`Activity type: ${activity.type}`);
|
|
79
|
+
// Accumulate the text as it comes in from the stream.
|
|
80
|
+
// This also accounts for the "old style" of streaming where the stream info is in channelData.
|
|
81
|
+
if (streamingEntity || ((_d = activity.channelData) === null || _d === void 0 ? void 0 : _d.streamType) === 'streaming') {
|
|
82
|
+
const text = (_e = activity.text) !== null && _e !== void 0 ? _e : '';
|
|
83
|
+
const id = ((_f = streamingEntity === null || streamingEntity === void 0 ? void 0 : streamingEntity.streamId) !== null && _f !== void 0 ? _f : (_g = activity.channelData) === null || _g === void 0 ? void 0 : _g.streamId);
|
|
84
|
+
const sequence = ((_h = streamingEntity === null || streamingEntity === void 0 ? void 0 : streamingEntity.streamSequence) !== null && _h !== void 0 ? _h : (_j = activity.channelData) === null || _j === void 0 ? void 0 : _j.streamSequence);
|
|
85
|
+
// Accumulate the text chunks based on stream ID and sequence number.
|
|
86
|
+
if (id && sequence) {
|
|
87
|
+
if (streamMap.has(id)) {
|
|
88
|
+
const existing = streamMap.get(id);
|
|
89
|
+
existing.push({ text, sequence });
|
|
90
|
+
streamMap.set(id, existing);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
streamMap.set(id, [{ text, sequence }]);
|
|
94
|
+
}
|
|
95
|
+
activity.text = ((_k = streamMap.get(id)) === null || _k === void 0 ? void 0 : _k.sort((a, b) => a.sequence - b.sequence).map(item => item.text).join('')) || '';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
yield activity;
|
|
99
|
+
break;
|
|
74
100
|
default:
|
|
75
101
|
logger.debug(`Activity type: ${activity.type}`);
|
|
76
102
|
yield activity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotStudioClient.js","sourceRoot":"","sources":["../../src/copilotStudioClient.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,2DAAyE;AAEzE,yEAA4F;AAC5F,gEAAyF;AACzF,6DAAyD;AACzD,8DAAyD;AACzD,kDAAyC;AACzC,4CAAmB;AAEnB,MAAM,MAAM,GAAG,IAAA,cAAK,EAAC,uBAAuB,CAAC,CAAA;AAE7C;;;GAGG;AACH,MAAa,mBAAmB;IAqB9B;;;;OAIG;IACH,YAAa,QAA4B,EAAE,KAAa;QApBxD,0CAA0C;QAClC,mBAAc,GAAW,EAAE,CAAA;QAoBjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,CAAE,gBAAgB,CAAE,GAAW,EAAE,IAAU,EAAE,SAAiB,MAAM;;QAChF,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;QAElC,MAAM,WAAW,GAAsB,IAAA,sCAAiB,EAAC;YACvD,GAAG;YACH,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;gBACrC,YAAY,EAAE,mBAAmB,CAAC,cAAc,EAAE;gBAClD,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,mBAAmB;aAC5B;YACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7C,MAAM;YACN,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBACvC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC7C,OAAO,QAAQ,CAAA;YACjB,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,CAAC;gBAChD,IAAI,IAAI,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,0BAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"copilotStudioClient.js","sourceRoot":"","sources":["../../src/copilotStudioClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,16 +129,21 @@ class CopilotStudioWebChat {
|
|
|
129
129
|
const connectionStatus$ = new rxjs_1.BehaviorSubject(0);
|
|
130
130
|
const activity$ = createObservable(async (subscriber) => {
|
|
131
131
|
activitySubscriber = subscriber;
|
|
132
|
-
|
|
132
|
+
const handleAcknowledgementOnce = async () => {
|
|
133
133
|
connectionStatus$.next(2);
|
|
134
|
-
|
|
135
|
-
}
|
|
134
|
+
await 0; // Webchat requires an extra tick to process the connection status change
|
|
135
|
+
};
|
|
136
136
|
logger.debug('--> Connection established.');
|
|
137
137
|
notifyTyping();
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
if (connectionStatus$.value < 2) {
|
|
139
|
+
for await (const activity of client.startConversationStreaming()) {
|
|
140
|
+
delete activity.replyToId;
|
|
141
|
+
if (!conversation && activity.conversation) {
|
|
142
|
+
conversation = activity.conversation;
|
|
143
|
+
await handleAcknowledgementOnce();
|
|
144
|
+
}
|
|
145
|
+
notifyActivity(activity);
|
|
146
|
+
}
|
|
142
147
|
}
|
|
143
148
|
});
|
|
144
149
|
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,
|
|
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.1.
|
|
3
|
+
"version": "1.1.4-geb1c05c291",
|
|
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.1.
|
|
30
|
+
"@microsoft/agents-activity": "1.1.4-geb1c05c291",
|
|
31
31
|
"eventsource-client": "^1.2.0",
|
|
32
32
|
"rxjs": "7.8.2",
|
|
33
33
|
"uuid": "^11.1.0"
|
|
@@ -59,6 +59,8 @@ export class CopilotStudioClient {
|
|
|
59
59
|
private async * postRequestAsync (url: string, body?: any, method: string = 'POST'): AsyncGenerator<Activity> {
|
|
60
60
|
logger.debug(`>>> SEND TO ${url}`)
|
|
61
61
|
|
|
62
|
+
const streamMap = new Map<string, { text: string, sequence: number }[]>()
|
|
63
|
+
|
|
62
64
|
const eventSource: EventSourceClient = createEventSource({
|
|
63
65
|
url,
|
|
64
66
|
headers: {
|
|
@@ -81,6 +83,9 @@ export class CopilotStudioClient {
|
|
|
81
83
|
if (data && event === 'activity') {
|
|
82
84
|
try {
|
|
83
85
|
const activity = Activity.fromJson(data)
|
|
86
|
+
|
|
87
|
+
// check to see if this activity is part of the streamed response, in which case we need to accumulate the text
|
|
88
|
+
const streamingEntity = activity.entities?.find(e => e.type === 'streaminfo' && e.streamType === 'streaming')
|
|
84
89
|
switch (activity.type) {
|
|
85
90
|
case ActivityTypes.Message:
|
|
86
91
|
if (!this.conversationId.trim()) { // Did not get it from the header.
|
|
@@ -89,6 +94,28 @@ export class CopilotStudioClient {
|
|
|
89
94
|
}
|
|
90
95
|
yield activity
|
|
91
96
|
break
|
|
97
|
+
case ActivityTypes.Typing:
|
|
98
|
+
logger.debug(`Activity type: ${activity.type}`)
|
|
99
|
+
// Accumulate the text as it comes in from the stream.
|
|
100
|
+
// This also accounts for the "old style" of streaming where the stream info is in channelData.
|
|
101
|
+
if (streamingEntity || activity.channelData?.streamType === 'streaming') {
|
|
102
|
+
const text = activity.text ?? ''
|
|
103
|
+
const id = (streamingEntity?.streamId ?? activity.channelData?.streamId)
|
|
104
|
+
const sequence = (streamingEntity?.streamSequence ?? activity.channelData?.streamSequence)
|
|
105
|
+
// Accumulate the text chunks based on stream ID and sequence number.
|
|
106
|
+
if (id && sequence) {
|
|
107
|
+
if (streamMap.has(id)) {
|
|
108
|
+
const existing = streamMap.get(id)!
|
|
109
|
+
existing.push({ text, sequence })
|
|
110
|
+
streamMap.set(id, existing)
|
|
111
|
+
} else {
|
|
112
|
+
streamMap.set(id, [{ text, sequence }])
|
|
113
|
+
}
|
|
114
|
+
activity.text = streamMap.get(id)?.sort((a, b) => a.sequence - b.sequence).map(item => item.text).join('') || ''
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
yield activity
|
|
118
|
+
break
|
|
92
119
|
default:
|
|
93
120
|
logger.debug(`Activity type: ${activity.type}`)
|
|
94
121
|
yield activity
|
|
@@ -201,7 +201,7 @@ export class CopilotStudioWebChat {
|
|
|
201
201
|
static createConnection (
|
|
202
202
|
client: CopilotStudioClient,
|
|
203
203
|
settings?: CopilotStudioWebChatSettings
|
|
204
|
-
):CopilotStudioWebChatConnection {
|
|
204
|
+
): CopilotStudioWebChatConnection {
|
|
205
205
|
logger.info('--> Creating connection between Copilot Studio and WebChat ...')
|
|
206
206
|
let sequence = 0
|
|
207
207
|
let activitySubscriber: Subscriber<Partial<Activity>> | undefined
|
|
@@ -211,18 +211,24 @@ export class CopilotStudioWebChat {
|
|
|
211
211
|
const activity$ = createObservable<Partial<Activity>>(async (subscriber) => {
|
|
212
212
|
activitySubscriber = subscriber
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
const handleAcknowledgementOnce = async (): Promise<void> => {
|
|
215
215
|
connectionStatus$.next(2)
|
|
216
|
-
|
|
216
|
+
await 0 // Webchat requires an extra tick to process the connection status change
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
logger.debug('--> Connection established.')
|
|
220
220
|
notifyTyping()
|
|
221
221
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
222
|
+
if (connectionStatus$.value < 2) {
|
|
223
|
+
for await (const activity of client.startConversationStreaming()) {
|
|
224
|
+
delete activity.replyToId
|
|
225
|
+
if (!conversation && activity.conversation) {
|
|
226
|
+
conversation = activity.conversation
|
|
227
|
+
await handleAcknowledgementOnce()
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
notifyActivity(activity)
|
|
231
|
+
}
|
|
226
232
|
}
|
|
227
233
|
})
|
|
228
234
|
|