@voltagent/core 2.3.1 → 2.3.2
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.js +110 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +110 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12788,6 +12788,34 @@ var bytesToBase64 = /* @__PURE__ */ __name((bytes) => {
|
|
|
12788
12788
|
}, "bytesToBase64");
|
|
12789
12789
|
|
|
12790
12790
|
// src/utils/message-converter.ts
|
|
12791
|
+
var hasOpenAIReasoningProviderOptions = /* @__PURE__ */ __name((providerOptions) => {
|
|
12792
|
+
if (!providerOptions || typeof providerOptions !== "object") {
|
|
12793
|
+
return false;
|
|
12794
|
+
}
|
|
12795
|
+
const openai = providerOptions.openai;
|
|
12796
|
+
if (!openai || typeof openai !== "object") {
|
|
12797
|
+
return false;
|
|
12798
|
+
}
|
|
12799
|
+
const itemId = typeof openai.itemId === "string" ? openai.itemId.trim() : "";
|
|
12800
|
+
if (itemId) {
|
|
12801
|
+
return true;
|
|
12802
|
+
}
|
|
12803
|
+
const reasoningTraceId = typeof openai.reasoning_trace_id === "string" ? openai.reasoning_trace_id.trim() : "";
|
|
12804
|
+
if (reasoningTraceId) {
|
|
12805
|
+
return true;
|
|
12806
|
+
}
|
|
12807
|
+
const reasoning = openai.reasoning;
|
|
12808
|
+
if (reasoning && typeof reasoning === "object") {
|
|
12809
|
+
const reasoningId = typeof reasoning.id === "string" ? reasoning.id.trim() : "";
|
|
12810
|
+
if (reasoningId) {
|
|
12811
|
+
return true;
|
|
12812
|
+
}
|
|
12813
|
+
}
|
|
12814
|
+
if (typeof openai.reasoningEncryptedContent === "string" && openai.reasoningEncryptedContent) {
|
|
12815
|
+
return true;
|
|
12816
|
+
}
|
|
12817
|
+
return false;
|
|
12818
|
+
}, "hasOpenAIReasoningProviderOptions");
|
|
12791
12819
|
function findExistingToolPart(parts, toolCallId) {
|
|
12792
12820
|
for (let i = parts.length - 1; i >= 0; i--) {
|
|
12793
12821
|
const part = parts[i];
|
|
@@ -12936,10 +12964,13 @@ function convertModelMessagesToUIMessages(messages) {
|
|
|
12936
12964
|
break;
|
|
12937
12965
|
}
|
|
12938
12966
|
case "reasoning": {
|
|
12939
|
-
|
|
12967
|
+
const reasoningText = typeof contentPart.text === "string" ? contentPart.text : "";
|
|
12968
|
+
const hasReasoningId = typeof contentPart.id === "string" && contentPart.id.trim().length > 0;
|
|
12969
|
+
const shouldKeep = reasoningText.length > 0 || hasReasoningId || hasOpenAIReasoningProviderOptions(contentPart.providerOptions);
|
|
12970
|
+
if (shouldKeep) {
|
|
12940
12971
|
ui.parts.push({
|
|
12941
12972
|
type: "reasoning",
|
|
12942
|
-
text:
|
|
12973
|
+
text: reasoningText,
|
|
12943
12974
|
...contentPart.providerOptions ? { providerMetadata: contentPart.providerOptions } : {},
|
|
12944
12975
|
...contentPart.id ? { reasoningId: contentPart.id } : {},
|
|
12945
12976
|
...contentPart.confidence ? { reasoningConfidence: contentPart.confidence } : {}
|
|
@@ -19698,7 +19729,9 @@ var WORKING_MEMORY_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
19698
19729
|
"get_working_memory",
|
|
19699
19730
|
"clear_working_memory"
|
|
19700
19731
|
]);
|
|
19732
|
+
var OPENAI_REASONING_ID_PREFIX = "rs_";
|
|
19701
19733
|
var isObject = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null, "isObject");
|
|
19734
|
+
var isOpenAIReasoningId = /* @__PURE__ */ __name((value) => value.trim().startsWith(OPENAI_REASONING_ID_PREFIX), "isOpenAIReasoningId");
|
|
19702
19735
|
var safeClone = /* @__PURE__ */ __name((value) => {
|
|
19703
19736
|
if (!isObject(value) && !Array.isArray(value)) {
|
|
19704
19737
|
return value;
|
|
@@ -19743,7 +19776,54 @@ var sanitizeReasoningProviderMetadata = /* @__PURE__ */ __name((providerMetadata
|
|
|
19743
19776
|
}
|
|
19744
19777
|
return cloned;
|
|
19745
19778
|
}, "sanitizeReasoningProviderMetadata");
|
|
19779
|
+
var extractOpenAIReasoningId = /* @__PURE__ */ __name((metadata) => {
|
|
19780
|
+
const openai = metadata.openai;
|
|
19781
|
+
if (!isObject(openai)) {
|
|
19782
|
+
return void 0;
|
|
19783
|
+
}
|
|
19784
|
+
if (typeof openai.itemId === "string") {
|
|
19785
|
+
const itemId = openai.itemId.trim();
|
|
19786
|
+
if (itemId) {
|
|
19787
|
+
return itemId;
|
|
19788
|
+
}
|
|
19789
|
+
}
|
|
19790
|
+
if (typeof openai.reasoning_trace_id === "string") {
|
|
19791
|
+
const traceId = openai.reasoning_trace_id.trim();
|
|
19792
|
+
if (traceId) {
|
|
19793
|
+
return traceId;
|
|
19794
|
+
}
|
|
19795
|
+
}
|
|
19796
|
+
const reasoning = openai.reasoning;
|
|
19797
|
+
if (isObject(reasoning)) {
|
|
19798
|
+
const reasoningId = typeof reasoning.id === "string" ? reasoning.id.trim() : "";
|
|
19799
|
+
if (reasoningId) {
|
|
19800
|
+
return reasoningId;
|
|
19801
|
+
}
|
|
19802
|
+
}
|
|
19803
|
+
return void 0;
|
|
19804
|
+
}, "extractOpenAIReasoningId");
|
|
19805
|
+
var buildOpenAIReasoningProviderMetadata = /* @__PURE__ */ __name((providerMetadata, reasoningId) => {
|
|
19806
|
+
const openai = providerMetadata && isObject(providerMetadata.openai) ? providerMetadata.openai : void 0;
|
|
19807
|
+
const openaiMeta = isObject(openai) ? openai : void 0;
|
|
19808
|
+
const itemId = typeof openaiMeta?.itemId === "string" ? openaiMeta.itemId.trim() : isOpenAIReasoningId(reasoningId) ? reasoningId : "";
|
|
19809
|
+
const reasoningEncryptedContent = typeof openaiMeta?.reasoningEncryptedContent === "string" ? openaiMeta.reasoningEncryptedContent : void 0;
|
|
19810
|
+
if (!itemId && !reasoningEncryptedContent) {
|
|
19811
|
+
return void 0;
|
|
19812
|
+
}
|
|
19813
|
+
const openaiPayload = {};
|
|
19814
|
+
if (itemId) {
|
|
19815
|
+
openaiPayload.itemId = itemId;
|
|
19816
|
+
}
|
|
19817
|
+
if (reasoningEncryptedContent) {
|
|
19818
|
+
openaiPayload.reasoningEncryptedContent = reasoningEncryptedContent;
|
|
19819
|
+
}
|
|
19820
|
+
return { openai: openaiPayload };
|
|
19821
|
+
}, "buildOpenAIReasoningProviderMetadata");
|
|
19746
19822
|
var extractReasoningIdFromMetadata = /* @__PURE__ */ __name((metadata) => {
|
|
19823
|
+
const openaiReasoningId = extractOpenAIReasoningId(metadata);
|
|
19824
|
+
if (openaiReasoningId) {
|
|
19825
|
+
return openaiReasoningId;
|
|
19826
|
+
}
|
|
19747
19827
|
const visit = /* @__PURE__ */ __name((value, hasReasoningContext) => {
|
|
19748
19828
|
if (Array.isArray(value)) {
|
|
19749
19829
|
for (const element of value) {
|
|
@@ -19789,6 +19869,10 @@ var normalizeReasoning = /* @__PURE__ */ __name((part) => {
|
|
|
19789
19869
|
if (reasoningId) {
|
|
19790
19870
|
normalized.reasoningId = reasoningId;
|
|
19791
19871
|
}
|
|
19872
|
+
const openaiMetadata = buildOpenAIReasoningProviderMetadata(providerMetadata, reasoningId);
|
|
19873
|
+
if (openaiMetadata) {
|
|
19874
|
+
normalized.providerMetadata = openaiMetadata;
|
|
19875
|
+
}
|
|
19792
19876
|
if (part.reasoningConfidence !== void 0) {
|
|
19793
19877
|
normalized.reasoningConfidence = part.reasoningConfidence;
|
|
19794
19878
|
}
|
|
@@ -20036,9 +20120,31 @@ var removeProviderExecutedToolsWithoutReasoning = /* @__PURE__ */ __name((parts)
|
|
|
20036
20120
|
(part) => !(typeof part.type === "string" && part.type.startsWith("tool-") && part.providerExecuted === true)
|
|
20037
20121
|
);
|
|
20038
20122
|
}, "removeProviderExecutedToolsWithoutReasoning");
|
|
20123
|
+
var hasOpenAIReasoningContext = /* @__PURE__ */ __name((parts) => {
|
|
20124
|
+
for (const part of parts) {
|
|
20125
|
+
if (part.type !== "reasoning") {
|
|
20126
|
+
continue;
|
|
20127
|
+
}
|
|
20128
|
+
const reasoningId = typeof part.reasoningId === "string" ? part.reasoningId.trim() : "";
|
|
20129
|
+
if (reasoningId && isOpenAIReasoningId(reasoningId)) {
|
|
20130
|
+
return true;
|
|
20131
|
+
}
|
|
20132
|
+
const providerMetadata = part.providerMetadata;
|
|
20133
|
+
if (isObject(providerMetadata)) {
|
|
20134
|
+
const openai = providerMetadata.openai;
|
|
20135
|
+
if (isObject(openai)) {
|
|
20136
|
+
const itemId = typeof openai.itemId === "string" ? openai.itemId.trim() : "";
|
|
20137
|
+
if (itemId) {
|
|
20138
|
+
return true;
|
|
20139
|
+
}
|
|
20140
|
+
}
|
|
20141
|
+
}
|
|
20142
|
+
}
|
|
20143
|
+
return false;
|
|
20144
|
+
}, "hasOpenAIReasoningContext");
|
|
20039
20145
|
var stripReasoningLinkedProviderMetadata = /* @__PURE__ */ __name((parts) => {
|
|
20040
|
-
const
|
|
20041
|
-
if (
|
|
20146
|
+
const hasOpenAIReasoning = hasOpenAIReasoningContext(parts);
|
|
20147
|
+
if (hasOpenAIReasoning) {
|
|
20042
20148
|
return parts;
|
|
20043
20149
|
}
|
|
20044
20150
|
const stripMetadata = /* @__PURE__ */ __name((metadata) => {
|