@bitfab/sdk 0.20.0 → 0.21.1
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/{chunk-IUZIGC6T.js → chunk-75LZO6JS.js} +97 -9
- package/dist/chunk-75LZO6JS.js.map +1 -0
- package/dist/index.cjs +96 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +79 -2
- package/dist/index.d.ts +79 -2
- package/dist/index.js +3 -1
- package/dist/node.cjs +96 -7
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.cts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +3 -1
- package/dist/node.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-IUZIGC6T.js.map +0 -1
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-EQI6ZJC3.js";
|
|
11
11
|
|
|
12
12
|
// src/version.generated.ts
|
|
13
|
-
var __version__ = "0.
|
|
13
|
+
var __version__ = "0.21.1";
|
|
14
14
|
|
|
15
15
|
// src/constants.ts
|
|
16
16
|
var DEFAULT_SERVICE_URL = "https://bitfab.ai";
|
|
@@ -1929,9 +1929,15 @@ var BitfabOpenAITracingProcessor = class {
|
|
|
1929
1929
|
* Extract and add input/response to serialized span, updating errors list.
|
|
1930
1930
|
*/
|
|
1931
1931
|
extractSpanInputResponse(span, serializedSpan, errors) {
|
|
1932
|
+
if (span.spanData?.type !== "response") {
|
|
1933
|
+
return;
|
|
1934
|
+
}
|
|
1932
1935
|
const spanData = serializedSpan.span_data;
|
|
1933
1936
|
try {
|
|
1934
|
-
|
|
1937
|
+
const input = span.spanData?._input;
|
|
1938
|
+
if (input !== void 0) {
|
|
1939
|
+
spanData.input = input;
|
|
1940
|
+
}
|
|
1935
1941
|
} catch (error) {
|
|
1936
1942
|
errors.push({
|
|
1937
1943
|
source: "sdk",
|
|
@@ -1940,7 +1946,10 @@ var BitfabOpenAITracingProcessor = class {
|
|
|
1940
1946
|
});
|
|
1941
1947
|
}
|
|
1942
1948
|
try {
|
|
1943
|
-
|
|
1949
|
+
const response = span.spanData?._response;
|
|
1950
|
+
if (response !== void 0) {
|
|
1951
|
+
spanData.response = response;
|
|
1952
|
+
}
|
|
1944
1953
|
} catch (error) {
|
|
1945
1954
|
errors.push({
|
|
1946
1955
|
source: "sdk",
|
|
@@ -2654,11 +2663,11 @@ var Bitfab = class {
|
|
|
2654
2663
|
startedAt,
|
|
2655
2664
|
spanType: options.type ?? "custom"
|
|
2656
2665
|
};
|
|
2657
|
-
const sendSpan = async (params) => {
|
|
2666
|
+
const sendSpan = async (params, spanOpts) => {
|
|
2658
2667
|
const replayCtx = getReplayContext();
|
|
2659
2668
|
const persistenceCollector = isRootSpan ? replayCtx?.pendingPersistence : void 0;
|
|
2660
2669
|
let resolvePersistence;
|
|
2661
|
-
if (persistenceCollector) {
|
|
2670
|
+
if (persistenceCollector && !spanOpts?.skipPersistenceRegistration) {
|
|
2662
2671
|
persistenceCollector.push(
|
|
2663
2672
|
new Promise((resolve) => {
|
|
2664
2673
|
resolvePersistence = resolve;
|
|
@@ -2758,11 +2767,41 @@ var Bitfab = class {
|
|
|
2758
2767
|
}
|
|
2759
2768
|
}
|
|
2760
2769
|
}
|
|
2770
|
+
const recordSpan = (result) => {
|
|
2771
|
+
if (options.finalize) {
|
|
2772
|
+
const replayCtx = getReplayContext();
|
|
2773
|
+
const persistenceCollector = isRootSpan ? replayCtx?.pendingPersistence : void 0;
|
|
2774
|
+
let resolvePersistence;
|
|
2775
|
+
if (persistenceCollector) {
|
|
2776
|
+
persistenceCollector.push(
|
|
2777
|
+
new Promise((resolve) => {
|
|
2778
|
+
resolvePersistence = resolve;
|
|
2779
|
+
})
|
|
2780
|
+
);
|
|
2781
|
+
}
|
|
2782
|
+
void Promise.resolve().then(() => options.finalize(result)).then(
|
|
2783
|
+
(output) => sendSpan(
|
|
2784
|
+
{ result: output },
|
|
2785
|
+
{ skipPersistenceRegistration: true }
|
|
2786
|
+
)
|
|
2787
|
+
).catch(
|
|
2788
|
+
(error) => sendSpan(
|
|
2789
|
+
{
|
|
2790
|
+
result: void 0,
|
|
2791
|
+
error: error instanceof Error ? `finalize failed: ${error.message}` : `finalize failed: ${String(error)}`
|
|
2792
|
+
},
|
|
2793
|
+
{ skipPersistenceRegistration: true }
|
|
2794
|
+
)
|
|
2795
|
+
).finally(() => resolvePersistence?.());
|
|
2796
|
+
} else {
|
|
2797
|
+
void sendSpan({ result });
|
|
2798
|
+
}
|
|
2799
|
+
};
|
|
2761
2800
|
const executeWithContext = () => {
|
|
2762
2801
|
const result = fn(...args);
|
|
2763
2802
|
if (result instanceof Promise) {
|
|
2764
2803
|
return result.then((resolvedResult) => {
|
|
2765
|
-
|
|
2804
|
+
recordSpan(resolvedResult);
|
|
2766
2805
|
return resolvedResult;
|
|
2767
2806
|
}).catch((error) => {
|
|
2768
2807
|
void sendSpan({
|
|
@@ -2775,7 +2814,7 @@ var Bitfab = class {
|
|
|
2775
2814
|
if (isAsyncGenerator(result)) {
|
|
2776
2815
|
return wrapAsyncGenerator(result, newStack, sendSpan);
|
|
2777
2816
|
}
|
|
2778
|
-
|
|
2817
|
+
recordSpan(result);
|
|
2779
2818
|
return result;
|
|
2780
2819
|
};
|
|
2781
2820
|
return runWithSpanStack(newStack, executeWithContext);
|
|
@@ -3059,6 +3098,54 @@ var BitfabFunction = class {
|
|
|
3059
3098
|
}
|
|
3060
3099
|
};
|
|
3061
3100
|
|
|
3101
|
+
// src/finalizers.ts
|
|
3102
|
+
async function settle(value) {
|
|
3103
|
+
try {
|
|
3104
|
+
return await value;
|
|
3105
|
+
} catch {
|
|
3106
|
+
return void 0;
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
async function aiSdk(result) {
|
|
3110
|
+
const r = result ?? {};
|
|
3111
|
+
const [text, usage, totalUsage, finishReason, toolCalls, toolResults] = await Promise.all([
|
|
3112
|
+
settle(r.text),
|
|
3113
|
+
settle(r.usage),
|
|
3114
|
+
settle(r.totalUsage),
|
|
3115
|
+
settle(r.finishReason),
|
|
3116
|
+
settle(r.toolCalls),
|
|
3117
|
+
settle(r.toolResults)
|
|
3118
|
+
]);
|
|
3119
|
+
return {
|
|
3120
|
+
text,
|
|
3121
|
+
usage: totalUsage ?? usage,
|
|
3122
|
+
finishReason,
|
|
3123
|
+
toolCalls,
|
|
3124
|
+
toolResults
|
|
3125
|
+
};
|
|
3126
|
+
}
|
|
3127
|
+
async function readableStream(stream, onLive) {
|
|
3128
|
+
const [live, copy] = stream.tee();
|
|
3129
|
+
onLive(live);
|
|
3130
|
+
const chunks = [];
|
|
3131
|
+
const reader = copy.getReader();
|
|
3132
|
+
try {
|
|
3133
|
+
for (; ; ) {
|
|
3134
|
+
const { done, value } = await reader.read();
|
|
3135
|
+
if (done) {
|
|
3136
|
+
break;
|
|
3137
|
+
}
|
|
3138
|
+
chunks.push(value);
|
|
3139
|
+
}
|
|
3140
|
+
} catch {
|
|
3141
|
+
}
|
|
3142
|
+
return { chunks };
|
|
3143
|
+
}
|
|
3144
|
+
var finalizers = {
|
|
3145
|
+
aiSdk,
|
|
3146
|
+
readableStream
|
|
3147
|
+
};
|
|
3148
|
+
|
|
3062
3149
|
export {
|
|
3063
3150
|
__version__,
|
|
3064
3151
|
DEFAULT_SERVICE_URL,
|
|
@@ -3071,6 +3158,7 @@ export {
|
|
|
3071
3158
|
getCurrentSpan,
|
|
3072
3159
|
getCurrentTrace,
|
|
3073
3160
|
Bitfab,
|
|
3074
|
-
BitfabFunction
|
|
3161
|
+
BitfabFunction,
|
|
3162
|
+
finalizers
|
|
3075
3163
|
};
|
|
3076
|
-
//# sourceMappingURL=chunk-
|
|
3164
|
+
//# sourceMappingURL=chunk-75LZO6JS.js.map
|