@microsoft/agents-hosting-storage-blob 1.7.2 → 1.8.0-beta.36.gb033f0abc1
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/README.md +2 -2
- package/dist/package.json +5 -5
- package/dist/src/blobsStorage.js +2 -2
- package/dist/src/blobsStorage.js.map +1 -1
- package/dist/src/blobsTranscriptStore.d.ts +2 -3
- package/dist/src/blobsTranscriptStore.js +46 -33
- package/dist/src/blobsTranscriptStore.js.map +1 -1
- package/package.json +5 -5
- package/src/blobsStorage.ts +2 -2
- package/src/blobsTranscriptStore.ts +53 -39
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ This package allows to configure Azure Blob Storage as the backend for Agents co
|
|
|
7
7
|
## Usage with connectionStrings
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
|
-
const blobStorage = new
|
|
10
|
+
const blobStorage = new BlobsStorage(process.env.BLOB_CONTAINER_ID!, process.env.BLOB_STORAGE_CONNECTION_STRING!)
|
|
11
11
|
const conversationState = new ConversationState(blobStorage)
|
|
12
12
|
const userState = new UserState(blobStorage)
|
|
13
13
|
```
|
|
@@ -23,4 +23,4 @@ const echo = new AgentApplication<TurnState>({
|
|
|
23
23
|
'https://agentsstate.blob.core.windows.net/nodejs-conversations',
|
|
24
24
|
new MsalTokenCredential(loadAuthConfigFromEnv()))
|
|
25
25
|
})
|
|
26
|
-
```
|
|
26
|
+
```
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting-storage-blob",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0-beta.36.gb033f0abc1",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"url": "https://aka.ms/Agents"
|
|
14
14
|
},
|
|
15
15
|
"description": "Microsoft 365 Agents SDK State Blob Storage support.",
|
|
16
|
-
"main": "dist/index.js",
|
|
16
|
+
"main": "dist/src/index.js",
|
|
17
17
|
"types": "dist/src/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@azure/core-auth": "1.10.1",
|
|
20
20
|
"@azure/storage-blob": "12.31.0",
|
|
21
|
-
"@microsoft/agents-hosting": "1.
|
|
22
|
-
"@microsoft/agents-activity": "1.
|
|
23
|
-
"@microsoft/agents-telemetry": "1.
|
|
21
|
+
"@microsoft/agents-hosting": "1.8.0-beta.36.gb033f0abc1",
|
|
22
|
+
"@microsoft/agents-activity": "1.8.0-beta.36.gb033f0abc1",
|
|
23
|
+
"@microsoft/agents-telemetry": "1.8.0-beta.36.gb033f0abc1",
|
|
24
24
|
"zod": "3.25.75"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
package/dist/src/blobsStorage.js
CHANGED
|
@@ -64,7 +64,7 @@ class BlobsStorage {
|
|
|
64
64
|
*/
|
|
65
65
|
constructor(containerName, connectionString, options, url = '', credential) {
|
|
66
66
|
this._concurrency = Infinity;
|
|
67
|
-
if (url !== ''
|
|
67
|
+
if (url.trim() !== '') {
|
|
68
68
|
z.object({ url: z.string() }).parse({
|
|
69
69
|
url,
|
|
70
70
|
});
|
|
@@ -86,7 +86,7 @@ class BlobsStorage {
|
|
|
86
86
|
logger.info('BlobsStorage settings loaded', {
|
|
87
87
|
container: containerName,
|
|
88
88
|
connection: {
|
|
89
|
-
mode: (0, core_auth_1.isTokenCredential)(credential) ? 'tokenCredential' : 'connectionString',
|
|
89
|
+
mode: (0, core_auth_1.isTokenCredential)(credential) ? 'tokenCredential' : url.trim() !== '' ? 'url' : 'connectionString',
|
|
90
90
|
type: (url.trim() !== '' ? url : connectionString).trim() === 'UseDevelopmentStorage=true;' ? 'development' : 'production',
|
|
91
91
|
},
|
|
92
92
|
pipeline: (options === null || options === void 0 ? void 0 : options.storagePipelineOptions) !== undefined ? 'custom' : 'default',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobsStorage.js","sourceRoot":"","sources":["../../src/blobsStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,iEAA8C;AAC9C,gDAAqE;AACrE,sDAK4B;AAE5B,gEAA4D;AAC5D,+CAAsC;AACtC,iEAAwD;AACxD,+CAA8D;AAC9D,kEAA0D;AAC1D,mDAA8D;AAE9D,MAAM,MAAM,GAAG,IAAA,wBAAK,EAAC,qBAAqB,CAAC,CAAA;AAY3C;;;GAGG;AACH,MAAa,YAAY;IAKvB;;;;;;;;OAQG;IACH,YACE,aAAqB,EACrB,gBAAyB,EACzB,OAA6B,EAC7B,GAAG,GAAG,EAAE,EACR,UAA+E;QAjBhE,iBAAY,GAAG,QAAQ,CAAA;QAmBtC,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"blobsStorage.js","sourceRoot":"","sources":["../../src/blobsStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ export interface BlobsTranscriptStoreOptions {
|
|
|
45
45
|
*/
|
|
46
46
|
storagePipelineOptions?: StoragePipelineOptions;
|
|
47
47
|
/**
|
|
48
|
-
* Indicates whether to decode
|
|
48
|
+
* Indicates whether to decode a transcript key when supplied to an operation.
|
|
49
49
|
*/
|
|
50
50
|
decodeTranscriptKey?: boolean;
|
|
51
51
|
}
|
|
@@ -56,7 +56,6 @@ export declare class BlobsTranscriptStore implements TranscriptStore {
|
|
|
56
56
|
private readonly _containerClient;
|
|
57
57
|
private readonly _concurrency;
|
|
58
58
|
private _initializePromise?;
|
|
59
|
-
private _isDecodeTranscriptKey?;
|
|
60
59
|
/**
|
|
61
60
|
* Constructs a new instance of the BlobsTranscriptStore class.
|
|
62
61
|
*
|
|
@@ -98,7 +97,7 @@ export declare class BlobsTranscriptStore implements TranscriptStore {
|
|
|
98
97
|
* Logs an activity to the transcript store.
|
|
99
98
|
*
|
|
100
99
|
* @param activity - The activity to log.
|
|
101
|
-
* @param options - Optional configuration
|
|
100
|
+
* @param options - Optional configuration for this activity.
|
|
102
101
|
* @returns A promise that resolves when the activity is logged.
|
|
103
102
|
*/
|
|
104
103
|
logActivity(activity: Activity, options?: BlobsTranscriptStoreOptions): Promise<void>;
|
|
@@ -45,6 +45,7 @@ const errorHelper_1 = require("./errorHelper");
|
|
|
45
45
|
const storage_blob_1 = require("@azure/storage-blob");
|
|
46
46
|
const agents_telemetry_1 = require("@microsoft/agents-telemetry");
|
|
47
47
|
const logger = (0, agents_telemetry_1.debug)('agents:blob-transcript-store');
|
|
48
|
+
const ENCODED_PATH_SEPARATOR = encodeURIComponent('/');
|
|
48
49
|
/**
|
|
49
50
|
* Formats a Date object into a hexadecimal string representing ticks.
|
|
50
51
|
* @param timestamp - The Date object to format.
|
|
@@ -62,7 +63,8 @@ function formatTicks(timestamp) {
|
|
|
62
63
|
* @returns A sanitized string prefix for the channel.
|
|
63
64
|
*/
|
|
64
65
|
function getChannelPrefix(channelId) {
|
|
65
|
-
|
|
66
|
+
// sanitizeBlobKey removes trailing separators, so restore the encoded separator to avoid matching "channel2".
|
|
67
|
+
return `${sanitizeBlobKey(channelId)}${ENCODED_PATH_SEPARATOR}`;
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
68
70
|
* Generates a sanitized prefix for a conversation within a channel.
|
|
@@ -71,7 +73,8 @@ function getChannelPrefix(channelId) {
|
|
|
71
73
|
* @returns A sanitized string prefix for the conversation.
|
|
72
74
|
*/
|
|
73
75
|
function getConversationPrefix(channelId, conversationId) {
|
|
74
|
-
|
|
76
|
+
// sanitizeBlobKey removes trailing separators, so restore the encoded separator to avoid matching "conv2".
|
|
77
|
+
return `${sanitizeBlobKey(`${channelId}/${conversationId}`)}${ENCODED_PATH_SEPARATOR}`;
|
|
75
78
|
}
|
|
76
79
|
function getBlobKey(activity, options) {
|
|
77
80
|
var _a;
|
|
@@ -157,6 +160,15 @@ function maybeCast(value, ctor) {
|
|
|
157
160
|
}
|
|
158
161
|
return value;
|
|
159
162
|
}
|
|
163
|
+
function getConversationId(blobName) {
|
|
164
|
+
try {
|
|
165
|
+
const [, conversationId] = decodeURIComponent(blobName).split('/').filter(Boolean);
|
|
166
|
+
return conversationId;
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
160
172
|
const MAX_PAGE_SIZE = 20;
|
|
161
173
|
/**
|
|
162
174
|
* A class that implements the TranscriptStore interface using Azure Blob Storage.
|
|
@@ -173,7 +185,6 @@ class BlobsTranscriptStore {
|
|
|
173
185
|
*/
|
|
174
186
|
constructor(connectionString, containerName, options, blobServiceUri = '', tokenCredential) {
|
|
175
187
|
this._concurrency = Infinity;
|
|
176
|
-
this._isDecodeTranscriptKey = false;
|
|
177
188
|
if (blobServiceUri !== '' && tokenCredential !== null) {
|
|
178
189
|
z.object({ blobServiceUri: z.string() }).parse({
|
|
179
190
|
blobServiceUri,
|
|
@@ -193,7 +204,6 @@ class BlobsTranscriptStore {
|
|
|
193
204
|
this._concurrency = 1;
|
|
194
205
|
}
|
|
195
206
|
}
|
|
196
|
-
this._isDecodeTranscriptKey = options === null || options === void 0 ? void 0 : options.decodeTranscriptKey;
|
|
197
207
|
logger.info('BlobsTranscriptStore settings loaded', {
|
|
198
208
|
container: containerName,
|
|
199
209
|
connection: {
|
|
@@ -201,7 +211,7 @@ class BlobsTranscriptStore {
|
|
|
201
211
|
type: (blobServiceUri || connectionString).trim() === 'UseDevelopmentStorage=true;' ? 'development' : 'production',
|
|
202
212
|
},
|
|
203
213
|
pipeline: (options === null || options === void 0 ? void 0 : options.storagePipelineOptions) !== undefined ? 'custom' : 'default',
|
|
204
|
-
transcriptKey:
|
|
214
|
+
transcriptKey: 'encoded',
|
|
205
215
|
});
|
|
206
216
|
}
|
|
207
217
|
_initialize() {
|
|
@@ -226,15 +236,16 @@ class BlobsTranscriptStore {
|
|
|
226
236
|
const prefix = getConversationPrefix(channelId, conversationId);
|
|
227
237
|
logger.debug('Using conversation prefix', { prefix });
|
|
228
238
|
const iter = this._containerClient
|
|
229
|
-
.
|
|
239
|
+
.listBlobsFlat({
|
|
230
240
|
prefix,
|
|
231
241
|
})
|
|
232
242
|
.byPage({ continuationToken, maxPageSize: MAX_PAGE_SIZE });
|
|
233
|
-
|
|
243
|
+
const page = await iter.next();
|
|
234
244
|
const result = [];
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
245
|
+
const response = page.done
|
|
246
|
+
? undefined
|
|
247
|
+
: maybeCast((_a = page.value) !== null && _a !== void 0 ? _a : {});
|
|
248
|
+
if (response) {
|
|
238
249
|
const blobItems = (_c = (_b = response === null || response === void 0 ? void 0 : response.segment) === null || _b === void 0 ? void 0 : _b.blobItems) !== null && _c !== void 0 ? _c : [];
|
|
239
250
|
logger.debug('Fetched blob items', { blobCount: blobItems.length });
|
|
240
251
|
const fromIdx = startDate != null
|
|
@@ -256,7 +267,6 @@ class BlobsTranscriptStore {
|
|
|
256
267
|
result.push(activity);
|
|
257
268
|
});
|
|
258
269
|
}
|
|
259
|
-
page = await iter.next();
|
|
260
270
|
}
|
|
261
271
|
logger.debug('Total transcript activities fetched', { activityCount: result.length });
|
|
262
272
|
return {
|
|
@@ -276,31 +286,36 @@ class BlobsTranscriptStore {
|
|
|
276
286
|
z.object({ channelId: z.string() }).parse({ channelId });
|
|
277
287
|
await this._initialize();
|
|
278
288
|
const iter = this._containerClient
|
|
279
|
-
.
|
|
289
|
+
.listBlobsFlat({
|
|
280
290
|
prefix: getChannelPrefix(channelId),
|
|
291
|
+
includeMetadata: true,
|
|
281
292
|
})
|
|
282
293
|
.byPage({ continuationToken, maxPageSize: MAX_PAGE_SIZE });
|
|
283
|
-
|
|
284
|
-
const
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
294
|
+
const page = await iter.next();
|
|
295
|
+
const transcripts = new Map();
|
|
296
|
+
const response = page.done
|
|
297
|
+
? undefined
|
|
298
|
+
: maybeCast((_a = page.value) !== null && _a !== void 0 ? _a : {});
|
|
299
|
+
if (response) {
|
|
288
300
|
const blobItems = (_c = (_b = response === null || response === void 0 ? void 0 : response.segment) === null || _b === void 0 ? void 0 : _b.blobItems) !== null && _c !== void 0 ? _c : [];
|
|
289
|
-
|
|
290
|
-
var _a;
|
|
291
|
-
const
|
|
292
|
-
|
|
293
|
-
|
|
301
|
+
blobItems.forEach((blobItem) => {
|
|
302
|
+
var _a, _b, _c;
|
|
303
|
+
const id = getConversationId(blobItem.name);
|
|
304
|
+
if (!id) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
const metadataTimestamp = (_b = (_a = blobItem.metadata) === null || _a === void 0 ? void 0 : _a.timestamp) !== null && _b !== void 0 ? _b : (_c = blobItem.metadata) === null || _c === void 0 ? void 0 : _c.Timestamp;
|
|
308
|
+
const parsedCreated = metadataTimestamp ? new Date(metadataTimestamp) : undefined;
|
|
309
|
+
const created = parsedCreated && !Number.isNaN(parsedCreated.getTime()) ? parsedCreated : new Date();
|
|
310
|
+
const existing = transcripts.get(id);
|
|
311
|
+
if (!existing || created < existing.created) {
|
|
312
|
+
transcripts.set(id, { channelId, created, id });
|
|
313
|
+
}
|
|
294
314
|
});
|
|
295
|
-
items.forEach((transcript) => {
|
|
296
|
-
if (transcript)
|
|
297
|
-
result.push(transcript);
|
|
298
|
-
});
|
|
299
|
-
page = await iter.next();
|
|
300
315
|
}
|
|
301
316
|
return {
|
|
302
317
|
continuationToken: (_d = response === null || response === void 0 ? void 0 : response.continuationToken) !== null && _d !== void 0 ? _d : '',
|
|
303
|
-
items:
|
|
318
|
+
items: [...transcripts.values()],
|
|
304
319
|
};
|
|
305
320
|
}
|
|
306
321
|
/**
|
|
@@ -315,12 +330,10 @@ class BlobsTranscriptStore {
|
|
|
315
330
|
z.object({ channelId: z.string(), conversationId: z.string() }).parse({ channelId, conversationId });
|
|
316
331
|
await this._initialize();
|
|
317
332
|
const iter = this._containerClient
|
|
318
|
-
.
|
|
333
|
+
.listBlobsFlat({
|
|
319
334
|
prefix: getConversationPrefix(channelId, conversationId),
|
|
320
335
|
})
|
|
321
|
-
.byPage({
|
|
322
|
-
maxPageSize: MAX_PAGE_SIZE,
|
|
323
|
-
});
|
|
336
|
+
.byPage({ maxPageSize: MAX_PAGE_SIZE });
|
|
324
337
|
let page = await iter.next();
|
|
325
338
|
while (!page.done) {
|
|
326
339
|
const response = maybeCast((_a = page === null || page === void 0 ? void 0 : page.value) !== null && _a !== void 0 ? _a : {});
|
|
@@ -334,7 +347,7 @@ class BlobsTranscriptStore {
|
|
|
334
347
|
* Logs an activity to the transcript store.
|
|
335
348
|
*
|
|
336
349
|
* @param activity - The activity to log.
|
|
337
|
-
* @param options - Optional configuration
|
|
350
|
+
* @param options - Optional configuration for this activity.
|
|
338
351
|
* @returns A promise that resolves when the activity is logged.
|
|
339
352
|
*/
|
|
340
353
|
async logActivity(activity, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobsTranscriptStore.js","sourceRoot":"","sources":["../../src/blobsTranscriptStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blobsTranscriptStore.js","sourceRoot":"","sources":["../../src/blobsTranscriptStore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting-storage-blob",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0-beta.36.gb033f0abc1",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"url": "https://aka.ms/Agents"
|
|
14
14
|
},
|
|
15
15
|
"description": "Microsoft 365 Agents SDK State Blob Storage support.",
|
|
16
|
-
"main": "dist/index.js",
|
|
16
|
+
"main": "dist/src/index.js",
|
|
17
17
|
"types": "dist/src/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@azure/core-auth": "1.10.1",
|
|
20
20
|
"@azure/storage-blob": "12.31.0",
|
|
21
|
-
"@microsoft/agents-hosting": "1.
|
|
22
|
-
"@microsoft/agents-activity": "1.
|
|
23
|
-
"@microsoft/agents-telemetry": "1.
|
|
21
|
+
"@microsoft/agents-hosting": "1.8.0-beta.36.gb033f0abc1",
|
|
22
|
+
"@microsoft/agents-activity": "1.8.0-beta.36.gb033f0abc1",
|
|
23
|
+
"@microsoft/agents-telemetry": "1.8.0-beta.36.gb033f0abc1",
|
|
24
24
|
"zod": "3.25.75"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
package/src/blobsStorage.ts
CHANGED
|
@@ -52,7 +52,7 @@ export class BlobsStorage implements Storage {
|
|
|
52
52
|
url = '',
|
|
53
53
|
credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential
|
|
54
54
|
) {
|
|
55
|
-
if (url !== ''
|
|
55
|
+
if (url.trim() !== '') {
|
|
56
56
|
z.object({ url: z.string() }).parse({
|
|
57
57
|
url,
|
|
58
58
|
})
|
|
@@ -81,7 +81,7 @@ export class BlobsStorage implements Storage {
|
|
|
81
81
|
logger.info('BlobsStorage settings loaded', {
|
|
82
82
|
container: containerName,
|
|
83
83
|
connection: {
|
|
84
|
-
mode: isTokenCredential(credential) ? 'tokenCredential' : 'connectionString',
|
|
84
|
+
mode: isTokenCredential(credential) ? 'tokenCredential' : url.trim() !== '' ? 'url' : 'connectionString',
|
|
85
85
|
type: (url.trim() !== '' ? url : connectionString!).trim() === 'UseDevelopmentStorage=true;' ? 'development' : 'production',
|
|
86
86
|
},
|
|
87
87
|
pipeline: options?.storagePipelineOptions !== undefined ? 'custom' : 'default',
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
AnonymousCredential,
|
|
8
8
|
BlobItem,
|
|
9
9
|
ContainerClient,
|
|
10
|
-
|
|
10
|
+
ContainerListBlobFlatSegmentResponse,
|
|
11
11
|
StoragePipelineOptions,
|
|
12
12
|
StorageSharedKeyCredential,
|
|
13
13
|
} from '@azure/storage-blob'
|
|
@@ -15,6 +15,7 @@ import { TranscriptStore, PagedResult, TranscriptInfo } from '@microsoft/agents-
|
|
|
15
15
|
import { debug } from '@microsoft/agents-telemetry'
|
|
16
16
|
|
|
17
17
|
const logger = debug('agents:blob-transcript-store')
|
|
18
|
+
const ENCODED_PATH_SEPARATOR = encodeURIComponent('/')
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Formats a Date object into a hexadecimal string representing ticks.
|
|
@@ -34,7 +35,8 @@ function formatTicks (timestamp: Date): string {
|
|
|
34
35
|
* @returns A sanitized string prefix for the channel.
|
|
35
36
|
*/
|
|
36
37
|
function getChannelPrefix (channelId: string): string {
|
|
37
|
-
|
|
38
|
+
// sanitizeBlobKey removes trailing separators, so restore the encoded separator to avoid matching "channel2".
|
|
39
|
+
return `${sanitizeBlobKey(channelId)}${ENCODED_PATH_SEPARATOR}`
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
/**
|
|
@@ -43,8 +45,12 @@ function getChannelPrefix (channelId: string): string {
|
|
|
43
45
|
* @param conversationId - The ID of the conversation.
|
|
44
46
|
* @returns A sanitized string prefix for the conversation.
|
|
45
47
|
*/
|
|
46
|
-
function getConversationPrefix (
|
|
47
|
-
|
|
48
|
+
function getConversationPrefix (
|
|
49
|
+
channelId: string,
|
|
50
|
+
conversationId: string
|
|
51
|
+
): string {
|
|
52
|
+
// sanitizeBlobKey removes trailing separators, so restore the encoded separator to avoid matching "conv2".
|
|
53
|
+
return `${sanitizeBlobKey(`${channelId}/${conversationId}`)}${ENCODED_PATH_SEPARATOR}`
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
function getBlobKey (activity: Activity, options?: BlobsTranscriptStoreOptions): string {
|
|
@@ -141,6 +147,15 @@ function maybeCast<T> (value: unknown, ctor?: { new (...args: any[]): T }): T {
|
|
|
141
147
|
return value as T
|
|
142
148
|
}
|
|
143
149
|
|
|
150
|
+
function getConversationId (blobName: string): string | undefined {
|
|
151
|
+
try {
|
|
152
|
+
const [, conversationId] = decodeURIComponent(blobName).split('/').filter(Boolean)
|
|
153
|
+
return conversationId
|
|
154
|
+
} catch {
|
|
155
|
+
return undefined
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
144
159
|
const MAX_PAGE_SIZE = 20
|
|
145
160
|
|
|
146
161
|
/**
|
|
@@ -153,7 +168,7 @@ export interface BlobsTranscriptStoreOptions {
|
|
|
153
168
|
storagePipelineOptions?: StoragePipelineOptions;
|
|
154
169
|
|
|
155
170
|
/**
|
|
156
|
-
* Indicates whether to decode
|
|
171
|
+
* Indicates whether to decode a transcript key when supplied to an operation.
|
|
157
172
|
*/
|
|
158
173
|
decodeTranscriptKey?: boolean;
|
|
159
174
|
}
|
|
@@ -165,7 +180,6 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
165
180
|
private readonly _containerClient: ContainerClient
|
|
166
181
|
private readonly _concurrency = Infinity
|
|
167
182
|
private _initializePromise?: Promise<unknown>
|
|
168
|
-
private _isDecodeTranscriptKey?: boolean = false
|
|
169
183
|
|
|
170
184
|
/**
|
|
171
185
|
* Constructs a new instance of the BlobsTranscriptStore class.
|
|
@@ -214,8 +228,6 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
214
228
|
}
|
|
215
229
|
}
|
|
216
230
|
|
|
217
|
-
this._isDecodeTranscriptKey = options?.decodeTranscriptKey
|
|
218
|
-
|
|
219
231
|
logger.info('BlobsTranscriptStore settings loaded', {
|
|
220
232
|
container: containerName,
|
|
221
233
|
connection: {
|
|
@@ -223,7 +235,7 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
223
235
|
type: (blobServiceUri || connectionString).trim() === 'UseDevelopmentStorage=true;' ? 'development' : 'production',
|
|
224
236
|
},
|
|
225
237
|
pipeline: options?.storagePipelineOptions !== undefined ? 'custom' : 'default',
|
|
226
|
-
transcriptKey:
|
|
238
|
+
transcriptKey: 'encoded',
|
|
227
239
|
})
|
|
228
240
|
}
|
|
229
241
|
|
|
@@ -257,16 +269,18 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
257
269
|
logger.debug('Using conversation prefix', { prefix })
|
|
258
270
|
|
|
259
271
|
const iter = this._containerClient
|
|
260
|
-
.
|
|
272
|
+
.listBlobsFlat({
|
|
261
273
|
prefix,
|
|
262
274
|
})
|
|
263
275
|
.byPage({ continuationToken, maxPageSize: MAX_PAGE_SIZE })
|
|
264
276
|
|
|
265
|
-
|
|
277
|
+
const page = await iter.next()
|
|
266
278
|
const result: Activity[] = []
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
279
|
+
const response = page.done
|
|
280
|
+
? undefined
|
|
281
|
+
: maybeCast<ContainerListBlobFlatSegmentResponse>(page.value ?? {})
|
|
282
|
+
|
|
283
|
+
if (response) {
|
|
270
284
|
const blobItems = response?.segment?.blobItems ?? []
|
|
271
285
|
|
|
272
286
|
logger.debug('Fetched blob items', { blobCount: blobItems.length })
|
|
@@ -299,8 +313,6 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
299
313
|
if (activity) result.push(activity)
|
|
300
314
|
})
|
|
301
315
|
}
|
|
302
|
-
|
|
303
|
-
page = await iter.next()
|
|
304
316
|
}
|
|
305
317
|
|
|
306
318
|
logger.debug('Total transcript activities fetched', { activityCount: result.length })
|
|
@@ -324,37 +336,41 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
324
336
|
await this._initialize()
|
|
325
337
|
|
|
326
338
|
const iter = this._containerClient
|
|
327
|
-
.
|
|
339
|
+
.listBlobsFlat({
|
|
328
340
|
prefix: getChannelPrefix(channelId),
|
|
341
|
+
includeMetadata: true,
|
|
329
342
|
})
|
|
330
343
|
.byPage({ continuationToken, maxPageSize: MAX_PAGE_SIZE })
|
|
331
344
|
|
|
332
|
-
|
|
333
|
-
const
|
|
334
|
-
|
|
345
|
+
const page = await iter.next()
|
|
346
|
+
const transcripts = new Map<string, TranscriptInfo>()
|
|
347
|
+
const response = page.done
|
|
348
|
+
? undefined
|
|
349
|
+
: maybeCast<ContainerListBlobFlatSegmentResponse>(page.value ?? {})
|
|
335
350
|
|
|
336
|
-
|
|
337
|
-
const response = maybeCast<ContainerListBlobHierarchySegmentResponse>(page?.value ?? {})
|
|
351
|
+
if (response) {
|
|
338
352
|
const blobItems = response?.segment?.blobItems ?? []
|
|
339
353
|
|
|
340
|
-
|
|
341
|
-
const
|
|
342
|
-
|
|
343
|
-
|
|
354
|
+
blobItems.forEach((blobItem) => {
|
|
355
|
+
const id = getConversationId(blobItem.name)
|
|
356
|
+
if (!id) {
|
|
357
|
+
return
|
|
358
|
+
}
|
|
344
359
|
|
|
345
|
-
|
|
346
|
-
|
|
360
|
+
const metadataTimestamp = blobItem.metadata?.timestamp ?? blobItem.metadata?.Timestamp
|
|
361
|
+
const parsedCreated = metadataTimestamp ? new Date(metadataTimestamp) : undefined
|
|
362
|
+
const created = parsedCreated && !Number.isNaN(parsedCreated.getTime()) ? parsedCreated : new Date()
|
|
363
|
+
const existing = transcripts.get(id)
|
|
347
364
|
|
|
348
|
-
|
|
349
|
-
|
|
365
|
+
if (!existing || created < existing.created) {
|
|
366
|
+
transcripts.set(id, { channelId, created, id })
|
|
367
|
+
}
|
|
350
368
|
})
|
|
351
|
-
|
|
352
|
-
page = await iter.next()
|
|
353
369
|
}
|
|
354
370
|
|
|
355
371
|
return {
|
|
356
372
|
continuationToken: response?.continuationToken ?? '',
|
|
357
|
-
items:
|
|
373
|
+
items: [...transcripts.values()],
|
|
358
374
|
}
|
|
359
375
|
}
|
|
360
376
|
|
|
@@ -371,16 +387,14 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
371
387
|
await this._initialize()
|
|
372
388
|
|
|
373
389
|
const iter = this._containerClient
|
|
374
|
-
.
|
|
390
|
+
.listBlobsFlat({
|
|
375
391
|
prefix: getConversationPrefix(channelId, conversationId),
|
|
376
392
|
})
|
|
377
|
-
.byPage({
|
|
378
|
-
maxPageSize: MAX_PAGE_SIZE,
|
|
379
|
-
})
|
|
393
|
+
.byPage({ maxPageSize: MAX_PAGE_SIZE })
|
|
380
394
|
|
|
381
395
|
let page = await iter.next()
|
|
382
396
|
while (!page.done) {
|
|
383
|
-
const response = maybeCast<
|
|
397
|
+
const response = maybeCast<ContainerListBlobFlatSegmentResponse>(page?.value ?? {})
|
|
384
398
|
const blobItems = response?.segment?.blobItems ?? []
|
|
385
399
|
|
|
386
400
|
const deletionPromises = blobItems.map(blobItem =>
|
|
@@ -397,7 +411,7 @@ export class BlobsTranscriptStore implements TranscriptStore {
|
|
|
397
411
|
* Logs an activity to the transcript store.
|
|
398
412
|
*
|
|
399
413
|
* @param activity - The activity to log.
|
|
400
|
-
* @param options - Optional configuration
|
|
414
|
+
* @param options - Optional configuration for this activity.
|
|
401
415
|
* @returns A promise that resolves when the activity is logged.
|
|
402
416
|
*/
|
|
403
417
|
async logActivity (activity: Activity, options?: BlobsTranscriptStoreOptions): Promise<void> {
|