@voltagent/core 2.6.2 → 2.6.3
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/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +88 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +88 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -9330,6 +9330,9 @@ declare class Agent {
|
|
|
9330
9330
|
private getConversationBuffer;
|
|
9331
9331
|
private getMemoryPersistQueue;
|
|
9332
9332
|
private ensureStreamingResponseMessageId;
|
|
9333
|
+
private getOrCreateStepResponseMessageId;
|
|
9334
|
+
private getStepResponseMessageFingerprints;
|
|
9335
|
+
private normalizeStepResponseMessages;
|
|
9333
9336
|
private flushPendingMessagesOnError;
|
|
9334
9337
|
/**
|
|
9335
9338
|
* Get contextual logger with parent tracking
|
|
@@ -15908,6 +15911,7 @@ declare class VoltAgent {
|
|
|
15908
15911
|
private readonly ensureEnvironmentBinding;
|
|
15909
15912
|
private readonly triggerRegistry;
|
|
15910
15913
|
private readonly agentRefs;
|
|
15914
|
+
private lastServerlessRemoteConfig?;
|
|
15911
15915
|
readonly ready: Promise<void>;
|
|
15912
15916
|
initError?: unknown;
|
|
15913
15917
|
degraded: boolean;
|
|
@@ -15916,6 +15920,8 @@ declare class VoltAgent {
|
|
|
15916
15920
|
private ensureEnvironment;
|
|
15917
15921
|
private autoConfigureVoltOpsClientFromEnv;
|
|
15918
15922
|
private syncServerlessObservabilityRemote;
|
|
15923
|
+
private isSameServerlessRemoteConfig;
|
|
15924
|
+
private areHeaderRecordsEqual;
|
|
15919
15925
|
/**
|
|
15920
15926
|
* Setup graceful shutdown handlers
|
|
15921
15927
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -9330,6 +9330,9 @@ declare class Agent {
|
|
|
9330
9330
|
private getConversationBuffer;
|
|
9331
9331
|
private getMemoryPersistQueue;
|
|
9332
9332
|
private ensureStreamingResponseMessageId;
|
|
9333
|
+
private getOrCreateStepResponseMessageId;
|
|
9334
|
+
private getStepResponseMessageFingerprints;
|
|
9335
|
+
private normalizeStepResponseMessages;
|
|
9333
9336
|
private flushPendingMessagesOnError;
|
|
9334
9337
|
/**
|
|
9335
9338
|
* Get contextual logger with parent tracking
|
|
@@ -15908,6 +15911,7 @@ declare class VoltAgent {
|
|
|
15908
15911
|
private readonly ensureEnvironmentBinding;
|
|
15909
15912
|
private readonly triggerRegistry;
|
|
15910
15913
|
private readonly agentRefs;
|
|
15914
|
+
private lastServerlessRemoteConfig?;
|
|
15911
15915
|
readonly ready: Promise<void>;
|
|
15912
15916
|
initError?: unknown;
|
|
15913
15917
|
degraded: boolean;
|
|
@@ -15916,6 +15920,8 @@ declare class VoltAgent {
|
|
|
15916
15920
|
private ensureEnvironment;
|
|
15917
15921
|
private autoConfigureVoltOpsClientFromEnv;
|
|
15918
15922
|
private syncServerlessObservabilityRemote;
|
|
15923
|
+
private isSameServerlessRemoteConfig;
|
|
15924
|
+
private areHeaderRecordsEqual;
|
|
15919
15925
|
/**
|
|
15920
15926
|
* Setup graceful shutdown handlers
|
|
15921
15927
|
*/
|
package/dist/index.js
CHANGED
|
@@ -29966,6 +29966,7 @@ var STEP_PERSIST_COUNT_KEY = Symbol("persistedStepCount");
|
|
|
29966
29966
|
var ABORT_LISTENER_ATTACHED_KEY = Symbol("abortListenerAttached");
|
|
29967
29967
|
var MIDDLEWARE_RETRY_FEEDBACK_KEY = Symbol("middlewareRetryFeedback");
|
|
29968
29968
|
var STREAM_RESPONSE_MESSAGE_ID_KEY = Symbol("streamResponseMessageId");
|
|
29969
|
+
var STEP_RESPONSE_MESSAGE_FINGERPRINTS_KEY = Symbol("stepResponseMessageFingerprints");
|
|
29969
29970
|
var DEFAULT_FEEDBACK_KEY = "satisfaction";
|
|
29970
29971
|
var DEFAULT_CONVERSATION_TITLE_PROMPT = [
|
|
29971
29972
|
"You generate concise titles for new conversations.",
|
|
@@ -32416,6 +32417,7 @@ Metadata: ${(0, import_utils33.safeStringify)(metadata)}`;
|
|
|
32416
32417
|
oc.systemContext.delete("conversationSteps");
|
|
32417
32418
|
oc.systemContext.delete("bailedResult");
|
|
32418
32419
|
oc.systemContext.delete(STREAM_RESPONSE_MESSAGE_ID_KEY);
|
|
32420
|
+
oc.systemContext.delete(STEP_RESPONSE_MESSAGE_FINGERPRINTS_KEY);
|
|
32419
32421
|
oc.conversationSteps = [];
|
|
32420
32422
|
oc.output = void 0;
|
|
32421
32423
|
}
|
|
@@ -32440,20 +32442,56 @@ Metadata: ${(0, import_utils33.safeStringify)(metadata)}`;
|
|
|
32440
32442
|
return queue;
|
|
32441
32443
|
}
|
|
32442
32444
|
async ensureStreamingResponseMessageId(oc, buffer) {
|
|
32443
|
-
const
|
|
32444
|
-
if (typeof existing === "string" && existing.trim().length > 0) {
|
|
32445
|
-
return existing;
|
|
32446
|
-
}
|
|
32447
|
-
const messageId = (0, import_ai7.generateId)();
|
|
32445
|
+
const messageId = this.getOrCreateStepResponseMessageId(oc);
|
|
32448
32446
|
const placeholder = {
|
|
32449
32447
|
id: messageId,
|
|
32450
32448
|
role: "assistant",
|
|
32451
32449
|
parts: []
|
|
32452
32450
|
};
|
|
32453
32451
|
buffer.ingestUIMessages([placeholder], false);
|
|
32452
|
+
return messageId;
|
|
32453
|
+
}
|
|
32454
|
+
getOrCreateStepResponseMessageId(oc) {
|
|
32455
|
+
const existing = oc.systemContext.get(STREAM_RESPONSE_MESSAGE_ID_KEY);
|
|
32456
|
+
if (typeof existing === "string" && existing.trim().length > 0) {
|
|
32457
|
+
return existing;
|
|
32458
|
+
}
|
|
32459
|
+
const messageId = (0, import_ai7.generateId)();
|
|
32454
32460
|
oc.systemContext.set(STREAM_RESPONSE_MESSAGE_ID_KEY, messageId);
|
|
32455
32461
|
return messageId;
|
|
32456
32462
|
}
|
|
32463
|
+
getStepResponseMessageFingerprints(oc) {
|
|
32464
|
+
const existing = oc.systemContext.get(STEP_RESPONSE_MESSAGE_FINGERPRINTS_KEY);
|
|
32465
|
+
if (existing instanceof Set) {
|
|
32466
|
+
return existing;
|
|
32467
|
+
}
|
|
32468
|
+
const fingerprints = /* @__PURE__ */ new Set();
|
|
32469
|
+
oc.systemContext.set(STEP_RESPONSE_MESSAGE_FINGERPRINTS_KEY, fingerprints);
|
|
32470
|
+
return fingerprints;
|
|
32471
|
+
}
|
|
32472
|
+
normalizeStepResponseMessages(oc, responseMessages) {
|
|
32473
|
+
if (!responseMessages?.length) {
|
|
32474
|
+
return void 0;
|
|
32475
|
+
}
|
|
32476
|
+
const fallbackAssistantMessageId = this.getOrCreateStepResponseMessageId(oc);
|
|
32477
|
+
const fingerprints = this.getStepResponseMessageFingerprints(oc);
|
|
32478
|
+
const normalized = [];
|
|
32479
|
+
for (const responseMessage of responseMessages) {
|
|
32480
|
+
const normalizedMessage = responseMessage.role === "assistant" ? { ...responseMessage, id: fallbackAssistantMessageId } : responseMessage;
|
|
32481
|
+
const fingerprintMessageId = normalizedMessage.role === "assistant" ? fallbackAssistantMessageId : normalizedMessage.id ?? null;
|
|
32482
|
+
const fingerprint = (0, import_utils33.safeStringify)({
|
|
32483
|
+
role: normalizedMessage.role,
|
|
32484
|
+
id: fingerprintMessageId,
|
|
32485
|
+
content: normalizedMessage.content
|
|
32486
|
+
});
|
|
32487
|
+
if (fingerprints.has(fingerprint)) {
|
|
32488
|
+
continue;
|
|
32489
|
+
}
|
|
32490
|
+
fingerprints.add(fingerprint);
|
|
32491
|
+
normalized.push(normalizedMessage);
|
|
32492
|
+
}
|
|
32493
|
+
return normalized.length > 0 ? normalized : void 0;
|
|
32494
|
+
}
|
|
32457
32495
|
async flushPendingMessagesOnError(oc) {
|
|
32458
32496
|
const buffer = this.getConversationBuffer(oc);
|
|
32459
32497
|
const queue = this.getMemoryPersistQueue(oc);
|
|
@@ -34618,7 +34656,10 @@ ${retrieverContext}`;
|
|
|
34618
34656
|
const conversationPersistence = this.getConversationPersistenceOptionsForContext(oc);
|
|
34619
34657
|
return async (event) => {
|
|
34620
34658
|
const { shouldFlushForToolCompletion, bailedResult } = this.processStepContent(oc, event);
|
|
34621
|
-
const responseMessages =
|
|
34659
|
+
const responseMessages = this.normalizeStepResponseMessages(
|
|
34660
|
+
oc,
|
|
34661
|
+
filterResponseMessages(event.response?.messages)
|
|
34662
|
+
);
|
|
34622
34663
|
const hasResponseMessages = Boolean(responseMessages && responseMessages.length > 0);
|
|
34623
34664
|
if (hasResponseMessages && responseMessages) {
|
|
34624
34665
|
buffer.addModelMessages(responseMessages, "response");
|
|
@@ -41148,6 +41189,7 @@ var VoltAgent = class {
|
|
|
41148
41189
|
ensureEnvironmentBinding;
|
|
41149
41190
|
triggerRegistry;
|
|
41150
41191
|
agentRefs;
|
|
41192
|
+
lastServerlessRemoteConfig;
|
|
41151
41193
|
ready;
|
|
41152
41194
|
initError;
|
|
41153
41195
|
degraded = false;
|
|
@@ -41366,17 +41408,53 @@ var VoltAgent = class {
|
|
|
41366
41408
|
}
|
|
41367
41409
|
const baseUrl = voltOpsClient.getApiUrl().replace(/\/$/, "");
|
|
41368
41410
|
const headers = voltOpsClient.getAuthHeaders();
|
|
41411
|
+
const nextConfig = {
|
|
41412
|
+
tracesUrl: `${baseUrl}/api/public/otel/v1/traces`,
|
|
41413
|
+
logsUrl: `${baseUrl}/api/public/otel/v1/logs`,
|
|
41414
|
+
headers
|
|
41415
|
+
};
|
|
41416
|
+
if (this.isSameServerlessRemoteConfig(nextConfig)) {
|
|
41417
|
+
return;
|
|
41418
|
+
}
|
|
41419
|
+
this.lastServerlessRemoteConfig = {
|
|
41420
|
+
tracesUrl: nextConfig.tracesUrl,
|
|
41421
|
+
logsUrl: nextConfig.logsUrl,
|
|
41422
|
+
headers: { ...nextConfig.headers }
|
|
41423
|
+
};
|
|
41369
41424
|
this.observability.updateServerlessRemote({
|
|
41370
41425
|
traces: {
|
|
41371
|
-
url:
|
|
41372
|
-
headers
|
|
41426
|
+
url: nextConfig.tracesUrl,
|
|
41427
|
+
headers: nextConfig.headers
|
|
41373
41428
|
},
|
|
41374
41429
|
logs: {
|
|
41375
|
-
url:
|
|
41376
|
-
headers
|
|
41430
|
+
url: nextConfig.logsUrl,
|
|
41431
|
+
headers: nextConfig.headers
|
|
41377
41432
|
}
|
|
41378
41433
|
});
|
|
41379
41434
|
}
|
|
41435
|
+
isSameServerlessRemoteConfig(nextConfig) {
|
|
41436
|
+
const previous = this.lastServerlessRemoteConfig;
|
|
41437
|
+
if (!previous) {
|
|
41438
|
+
return false;
|
|
41439
|
+
}
|
|
41440
|
+
if (previous.tracesUrl !== nextConfig.tracesUrl || previous.logsUrl !== nextConfig.logsUrl) {
|
|
41441
|
+
return false;
|
|
41442
|
+
}
|
|
41443
|
+
return this.areHeaderRecordsEqual(previous.headers, nextConfig.headers);
|
|
41444
|
+
}
|
|
41445
|
+
areHeaderRecordsEqual(left, right) {
|
|
41446
|
+
const leftKeys = Object.keys(left);
|
|
41447
|
+
const rightKeys = Object.keys(right);
|
|
41448
|
+
if (leftKeys.length !== rightKeys.length) {
|
|
41449
|
+
return false;
|
|
41450
|
+
}
|
|
41451
|
+
for (const key of leftKeys) {
|
|
41452
|
+
if (left[key] !== right[key]) {
|
|
41453
|
+
return false;
|
|
41454
|
+
}
|
|
41455
|
+
}
|
|
41456
|
+
return true;
|
|
41457
|
+
}
|
|
41380
41458
|
/**
|
|
41381
41459
|
* Setup graceful shutdown handlers
|
|
41382
41460
|
*/
|