bitfab 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
package/dist/index.cjs
CHANGED
|
@@ -491,6 +491,7 @@ __export(index_exports, {
|
|
|
491
491
|
ReplayEnvironment: () => ReplayEnvironment,
|
|
492
492
|
SUPPORTED_PROVIDERS: () => SUPPORTED_PROVIDERS,
|
|
493
493
|
__version__: () => __version__,
|
|
494
|
+
finalizers: () => finalizers,
|
|
494
495
|
flushTraces: () => flushTraces,
|
|
495
496
|
getCurrentSpan: () => getCurrentSpan,
|
|
496
497
|
getCurrentTrace: () => getCurrentTrace
|
|
@@ -498,7 +499,7 @@ __export(index_exports, {
|
|
|
498
499
|
module.exports = __toCommonJS(index_exports);
|
|
499
500
|
|
|
500
501
|
// src/version.generated.ts
|
|
501
|
-
var __version__ = "0.
|
|
502
|
+
var __version__ = "0.21.1";
|
|
502
503
|
|
|
503
504
|
// src/constants.ts
|
|
504
505
|
var DEFAULT_SERVICE_URL = "https://bitfab.ai";
|
|
@@ -2431,9 +2432,15 @@ var BitfabOpenAITracingProcessor = class {
|
|
|
2431
2432
|
* Extract and add input/response to serialized span, updating errors list.
|
|
2432
2433
|
*/
|
|
2433
2434
|
extractSpanInputResponse(span, serializedSpan, errors) {
|
|
2435
|
+
if (span.spanData?.type !== "response") {
|
|
2436
|
+
return;
|
|
2437
|
+
}
|
|
2434
2438
|
const spanData = serializedSpan.span_data;
|
|
2435
2439
|
try {
|
|
2436
|
-
|
|
2440
|
+
const input = span.spanData?._input;
|
|
2441
|
+
if (input !== void 0) {
|
|
2442
|
+
spanData.input = input;
|
|
2443
|
+
}
|
|
2437
2444
|
} catch (error) {
|
|
2438
2445
|
errors.push({
|
|
2439
2446
|
source: "sdk",
|
|
@@ -2442,7 +2449,10 @@ var BitfabOpenAITracingProcessor = class {
|
|
|
2442
2449
|
});
|
|
2443
2450
|
}
|
|
2444
2451
|
try {
|
|
2445
|
-
|
|
2452
|
+
const response = span.spanData?._response;
|
|
2453
|
+
if (response !== void 0) {
|
|
2454
|
+
spanData.response = response;
|
|
2455
|
+
}
|
|
2446
2456
|
} catch (error) {
|
|
2447
2457
|
errors.push({
|
|
2448
2458
|
source: "sdk",
|
|
@@ -3156,11 +3166,11 @@ var Bitfab = class {
|
|
|
3156
3166
|
startedAt,
|
|
3157
3167
|
spanType: options.type ?? "custom"
|
|
3158
3168
|
};
|
|
3159
|
-
const sendSpan = async (params) => {
|
|
3169
|
+
const sendSpan = async (params, spanOpts) => {
|
|
3160
3170
|
const replayCtx = getReplayContext();
|
|
3161
3171
|
const persistenceCollector = isRootSpan ? replayCtx?.pendingPersistence : void 0;
|
|
3162
3172
|
let resolvePersistence;
|
|
3163
|
-
if (persistenceCollector) {
|
|
3173
|
+
if (persistenceCollector && !spanOpts?.skipPersistenceRegistration) {
|
|
3164
3174
|
persistenceCollector.push(
|
|
3165
3175
|
new Promise((resolve) => {
|
|
3166
3176
|
resolvePersistence = resolve;
|
|
@@ -3260,11 +3270,41 @@ var Bitfab = class {
|
|
|
3260
3270
|
}
|
|
3261
3271
|
}
|
|
3262
3272
|
}
|
|
3273
|
+
const recordSpan = (result) => {
|
|
3274
|
+
if (options.finalize) {
|
|
3275
|
+
const replayCtx = getReplayContext();
|
|
3276
|
+
const persistenceCollector = isRootSpan ? replayCtx?.pendingPersistence : void 0;
|
|
3277
|
+
let resolvePersistence;
|
|
3278
|
+
if (persistenceCollector) {
|
|
3279
|
+
persistenceCollector.push(
|
|
3280
|
+
new Promise((resolve) => {
|
|
3281
|
+
resolvePersistence = resolve;
|
|
3282
|
+
})
|
|
3283
|
+
);
|
|
3284
|
+
}
|
|
3285
|
+
void Promise.resolve().then(() => options.finalize(result)).then(
|
|
3286
|
+
(output) => sendSpan(
|
|
3287
|
+
{ result: output },
|
|
3288
|
+
{ skipPersistenceRegistration: true }
|
|
3289
|
+
)
|
|
3290
|
+
).catch(
|
|
3291
|
+
(error) => sendSpan(
|
|
3292
|
+
{
|
|
3293
|
+
result: void 0,
|
|
3294
|
+
error: error instanceof Error ? `finalize failed: ${error.message}` : `finalize failed: ${String(error)}`
|
|
3295
|
+
},
|
|
3296
|
+
{ skipPersistenceRegistration: true }
|
|
3297
|
+
)
|
|
3298
|
+
).finally(() => resolvePersistence?.());
|
|
3299
|
+
} else {
|
|
3300
|
+
void sendSpan({ result });
|
|
3301
|
+
}
|
|
3302
|
+
};
|
|
3263
3303
|
const executeWithContext = () => {
|
|
3264
3304
|
const result = fn(...args);
|
|
3265
3305
|
if (result instanceof Promise) {
|
|
3266
3306
|
return result.then((resolvedResult) => {
|
|
3267
|
-
|
|
3307
|
+
recordSpan(resolvedResult);
|
|
3268
3308
|
return resolvedResult;
|
|
3269
3309
|
}).catch((error) => {
|
|
3270
3310
|
void sendSpan({
|
|
@@ -3277,7 +3317,7 @@ var Bitfab = class {
|
|
|
3277
3317
|
if (isAsyncGenerator(result)) {
|
|
3278
3318
|
return wrapAsyncGenerator(result, newStack, sendSpan);
|
|
3279
3319
|
}
|
|
3280
|
-
|
|
3320
|
+
recordSpan(result);
|
|
3281
3321
|
return result;
|
|
3282
3322
|
};
|
|
3283
3323
|
return runWithSpanStack(newStack, executeWithContext);
|
|
@@ -3560,6 +3600,54 @@ var BitfabFunction = class {
|
|
|
3560
3600
|
);
|
|
3561
3601
|
}
|
|
3562
3602
|
};
|
|
3603
|
+
|
|
3604
|
+
// src/finalizers.ts
|
|
3605
|
+
async function settle(value) {
|
|
3606
|
+
try {
|
|
3607
|
+
return await value;
|
|
3608
|
+
} catch {
|
|
3609
|
+
return void 0;
|
|
3610
|
+
}
|
|
3611
|
+
}
|
|
3612
|
+
async function aiSdk(result) {
|
|
3613
|
+
const r = result ?? {};
|
|
3614
|
+
const [text, usage, totalUsage, finishReason, toolCalls, toolResults] = await Promise.all([
|
|
3615
|
+
settle(r.text),
|
|
3616
|
+
settle(r.usage),
|
|
3617
|
+
settle(r.totalUsage),
|
|
3618
|
+
settle(r.finishReason),
|
|
3619
|
+
settle(r.toolCalls),
|
|
3620
|
+
settle(r.toolResults)
|
|
3621
|
+
]);
|
|
3622
|
+
return {
|
|
3623
|
+
text,
|
|
3624
|
+
usage: totalUsage ?? usage,
|
|
3625
|
+
finishReason,
|
|
3626
|
+
toolCalls,
|
|
3627
|
+
toolResults
|
|
3628
|
+
};
|
|
3629
|
+
}
|
|
3630
|
+
async function readableStream(stream, onLive) {
|
|
3631
|
+
const [live, copy] = stream.tee();
|
|
3632
|
+
onLive(live);
|
|
3633
|
+
const chunks = [];
|
|
3634
|
+
const reader = copy.getReader();
|
|
3635
|
+
try {
|
|
3636
|
+
for (; ; ) {
|
|
3637
|
+
const { done, value } = await reader.read();
|
|
3638
|
+
if (done) {
|
|
3639
|
+
break;
|
|
3640
|
+
}
|
|
3641
|
+
chunks.push(value);
|
|
3642
|
+
}
|
|
3643
|
+
} catch {
|
|
3644
|
+
}
|
|
3645
|
+
return { chunks };
|
|
3646
|
+
}
|
|
3647
|
+
var finalizers = {
|
|
3648
|
+
aiSdk,
|
|
3649
|
+
readableStream
|
|
3650
|
+
};
|
|
3563
3651
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3564
3652
|
0 && (module.exports = {
|
|
3565
3653
|
Bitfab,
|
|
@@ -3573,6 +3661,7 @@ var BitfabFunction = class {
|
|
|
3573
3661
|
ReplayEnvironment,
|
|
3574
3662
|
SUPPORTED_PROVIDERS,
|
|
3575
3663
|
__version__,
|
|
3664
|
+
finalizers,
|
|
3576
3665
|
flushTraces,
|
|
3577
3666
|
getCurrentSpan,
|
|
3578
3667
|
getCurrentTrace
|