bitfab 0.21.2 → 0.22.0
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-3YKMCCDV.js → chunk-4SLFC266.js} +64 -2
- package/dist/chunk-4SLFC266.js.map +1 -0
- package/dist/index.cjs +64 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +96 -3
- package/dist/index.d.ts +96 -3
- package/dist/index.js +3 -1
- package/dist/node.cjs +64 -1
- 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-3YKMCCDV.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Trace, Span } from '@openai/agents';
|
|
1
|
+
import { Agent, AgentInputItem, RunState, NonStreamRunOptions, RunResult, StreamRunOptions, StreamedRunResult, Trace, Span } from '@openai/agents';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* BAML execution utilities for the Bitfab TypeScript SDK.
|
|
@@ -313,6 +313,76 @@ declare class BitfabLangGraphCallbackHandler {
|
|
|
313
313
|
handleRetrieverError(error: unknown, runId: string): Promise<void>;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
/**
|
|
317
|
+
* OpenAI Agents SDK handler for Bitfab tracing.
|
|
318
|
+
*
|
|
319
|
+
* The OpenAI Agents SDK is instrumented in two layers:
|
|
320
|
+
*
|
|
321
|
+
* 1. A process-wide `TracingProcessor` (see `getOpenAiTracingProcessor` /
|
|
322
|
+
* `BitfabOpenAITracingProcessor`) registered once with `addTraceProcessor`.
|
|
323
|
+
* It captures everything *inside* a run — LLM calls, tool calls, handoffs —
|
|
324
|
+
* as Bitfab spans.
|
|
325
|
+
* 2. This handler's `wrapRun`, which owns the *root*. The processor never sees
|
|
326
|
+
* the caller's input (the SDK's trace events don't carry it), so a
|
|
327
|
+
* processor-only run records a root span with an empty input and is not
|
|
328
|
+
* replayable. `wrapRun` is a thin drop-in for `run()` that opens a
|
|
329
|
+
* `withSpan` root carrying the input and final output, so the run is
|
|
330
|
+
* replayable with no hand-written `withSpan`. The processor's spans nest
|
|
331
|
+
* underneath it automatically (it remaps onto the active span context).
|
|
332
|
+
*
|
|
333
|
+
* Use both together: register the processor once at startup, then call
|
|
334
|
+
* `handler.wrapRun(agent, input)` instead of `run(agent, input)`.
|
|
335
|
+
*/
|
|
336
|
+
|
|
337
|
+
type RootSpanOptions = {
|
|
338
|
+
type: "agent";
|
|
339
|
+
finalize: (result: unknown) => unknown | Promise<unknown>;
|
|
340
|
+
};
|
|
341
|
+
type WithSpanFn = <TArgs extends unknown[], TReturn>(traceFunctionKey: string, options: RootSpanOptions, fn: (...args: TArgs) => TReturn) => (...args: TArgs) => TReturn;
|
|
342
|
+
type RunInput<TContext, TAgent extends Agent<any, any>> = string | AgentInputItem[] | RunState<TContext, TAgent>;
|
|
343
|
+
/**
|
|
344
|
+
* OpenAI Agents SDK handler that records a replayable root span around a run.
|
|
345
|
+
*
|
|
346
|
+
* ```typescript
|
|
347
|
+
* import { Bitfab } from "@bitfab/sdk";
|
|
348
|
+
* import { addTraceProcessor, Agent, run } from "@openai/agents";
|
|
349
|
+
*
|
|
350
|
+
* const bitfab = new Bitfab({ apiKey: "..." });
|
|
351
|
+
* addTraceProcessor(bitfab.getOpenAiTracingProcessor()); // captures internals
|
|
352
|
+
*
|
|
353
|
+
* const agent = new Agent({ name: "Researcher", instructions: "..." });
|
|
354
|
+
* const handler = bitfab.getOpenAiAgentHandler("research-topic");
|
|
355
|
+
*
|
|
356
|
+
* // Swap run(agent, input) -> handler.wrapRun(agent, input)
|
|
357
|
+
* const result = await handler.wrapRun(agent, "Find X");
|
|
358
|
+
* return result.finalOutput;
|
|
359
|
+
* ```
|
|
360
|
+
*/
|
|
361
|
+
declare class BitfabOpenAIAgentHandler {
|
|
362
|
+
private readonly traceFunctionKey;
|
|
363
|
+
private readonly withSpanFn;
|
|
364
|
+
constructor(config: {
|
|
365
|
+
traceFunctionKey: string;
|
|
366
|
+
withSpan: WithSpanFn;
|
|
367
|
+
});
|
|
368
|
+
/**
|
|
369
|
+
* Drop-in replacement for the OpenAI Agents SDK's `run()` that records a
|
|
370
|
+
* replayable root `agent` span.
|
|
371
|
+
*
|
|
372
|
+
* The `input` is captured as the root span's input (as a single positional
|
|
373
|
+
* argument, so `replay(key, fn)` re-feeds it), and the run's `finalOutput`
|
|
374
|
+
* is recorded as the root output. For streaming runs (`{ stream: true }`),
|
|
375
|
+
* the result is handed back immediately and the final output is recorded
|
|
376
|
+
* once the stream completes — first-byte latency is untouched.
|
|
377
|
+
*
|
|
378
|
+
* The process-wide tracing processor (`getOpenAiTracingProcessor`) must still
|
|
379
|
+
* be registered: it captures the LLM/tool/handoff spans that nest beneath
|
|
380
|
+
* this root.
|
|
381
|
+
*/
|
|
382
|
+
wrapRun<TAgent extends Agent<any, any>, TContext = undefined>(agent: TAgent, input: RunInput<TContext, TAgent>, options?: NonStreamRunOptions<TContext>): Promise<RunResult<TContext, TAgent>>;
|
|
383
|
+
wrapRun<TAgent extends Agent<any, any>, TContext = undefined>(agent: TAgent, input: RunInput<TContext, TAgent>, options: StreamRunOptions<TContext>): Promise<StreamedRunResult<TContext, TAgent>>;
|
|
384
|
+
}
|
|
385
|
+
|
|
316
386
|
/**
|
|
317
387
|
* Per-trace environment exposed to customer code during replay.
|
|
318
388
|
*
|
|
@@ -863,6 +933,29 @@ declare class Bitfab {
|
|
|
863
933
|
* @returns A BitfabOpenAITracingProcessor instance configured for this client
|
|
864
934
|
*/
|
|
865
935
|
getOpenAiTracingProcessor(): BitfabOpenAITracingProcessor;
|
|
936
|
+
/**
|
|
937
|
+
* Get an OpenAI Agents SDK handler that records a replayable root span.
|
|
938
|
+
*
|
|
939
|
+
* The processor from {@link getOpenAiTracingProcessor} captures everything
|
|
940
|
+
* inside a run (LLM calls, tools, handoffs) but never sees the caller's
|
|
941
|
+
* input, so a processor-only run records an empty-input root and is not
|
|
942
|
+
* replayable. This handler's `wrapRun` is a drop-in for `run()` that opens a
|
|
943
|
+
* `withSpan` root carrying the input and final output; the processor's spans
|
|
944
|
+
* nest beneath it. Register the processor once at startup, then call
|
|
945
|
+
* `handler.wrapRun(agent, input)` in place of `run(agent, input)`.
|
|
946
|
+
*
|
|
947
|
+
* ```typescript
|
|
948
|
+
* import { addTraceProcessor, Agent, run } from "@openai/agents";
|
|
949
|
+
*
|
|
950
|
+
* addTraceProcessor(client.getOpenAiTracingProcessor());
|
|
951
|
+
* const handler = client.getOpenAiAgentHandler("research-topic");
|
|
952
|
+
* const result = await handler.wrapRun(agent, "Find X");
|
|
953
|
+
* ```
|
|
954
|
+
*
|
|
955
|
+
* @param traceFunctionKey - Groups traces under this key in Bitfab
|
|
956
|
+
* @returns A BitfabOpenAIAgentHandler configured for this client
|
|
957
|
+
*/
|
|
958
|
+
getOpenAiAgentHandler(traceFunctionKey: string): BitfabOpenAIAgentHandler;
|
|
866
959
|
/**
|
|
867
960
|
* Get a LangGraph/LangChain callback handler for tracing.
|
|
868
961
|
*
|
|
@@ -1117,7 +1210,7 @@ declare class BitfabFunction {
|
|
|
1117
1210
|
/**
|
|
1118
1211
|
* SDK version from package.json (injected at build time)
|
|
1119
1212
|
*/
|
|
1120
|
-
declare const __version__ = "0.
|
|
1213
|
+
declare const __version__ = "0.22.0";
|
|
1121
1214
|
|
|
1122
1215
|
/**
|
|
1123
1216
|
* Constants for the Bitfab SDK.
|
|
@@ -1185,4 +1278,4 @@ declare const finalizers: {
|
|
|
1185
1278
|
readableStream: typeof readableStream;
|
|
1186
1279
|
};
|
|
1187
1280
|
|
|
1188
|
-
export { type ActiveSpanContext, type AdaptContext, type AdaptInputsFn, type AllowedEnvVars, type BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, type BitfabConfig, BitfabError, BitfabFunction, BitfabLangGraphCallbackHandler as BitfabLangChainCallbackHandler, BitfabLangGraphCallbackHandler, BitfabOpenAITracingProcessor, type CodeChangeFile, type CurrentSpan, type CurrentTrace, DEFAULT_SERVICE_URL, type DbSnapshotConfig, type DbSnapshotProvider, type DbSnapshotRef, type DetachedTrace, type MockStrategy, type ProviderDefinition, ReplayEnvironment, type ReplayEnvironmentSnapshot, type ReplayItem, type ReplayOptions, type ReplayResult, SUPPORTED_PROVIDERS, type SpanOptions, type SpanType, type TokenUsage, type TraceResponse, type TracingProcessor, type WrapBAMLOptions, type WrappedBamlFn, __version__, finalizers, flushTraces, getCurrentSpan, getCurrentTrace };
|
|
1281
|
+
export { type ActiveSpanContext, type AdaptContext, type AdaptInputsFn, type AllowedEnvVars, type BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, type BitfabConfig, BitfabError, BitfabFunction, BitfabLangGraphCallbackHandler as BitfabLangChainCallbackHandler, BitfabLangGraphCallbackHandler, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, type CodeChangeFile, type CurrentSpan, type CurrentTrace, DEFAULT_SERVICE_URL, type DbSnapshotConfig, type DbSnapshotProvider, type DbSnapshotRef, type DetachedTrace, type MockStrategy, type ProviderDefinition, ReplayEnvironment, type ReplayEnvironmentSnapshot, type ReplayItem, type ReplayOptions, type ReplayResult, SUPPORTED_PROVIDERS, type SpanOptions, type SpanType, type TokenUsage, type TraceResponse, type TracingProcessor, type WrapBAMLOptions, type WrappedBamlFn, __version__, finalizers, flushTraces, getCurrentSpan, getCurrentTrace };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Trace, Span } from '@openai/agents';
|
|
1
|
+
import { Agent, AgentInputItem, RunState, NonStreamRunOptions, RunResult, StreamRunOptions, StreamedRunResult, Trace, Span } from '@openai/agents';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* BAML execution utilities for the Bitfab TypeScript SDK.
|
|
@@ -313,6 +313,76 @@ declare class BitfabLangGraphCallbackHandler {
|
|
|
313
313
|
handleRetrieverError(error: unknown, runId: string): Promise<void>;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
/**
|
|
317
|
+
* OpenAI Agents SDK handler for Bitfab tracing.
|
|
318
|
+
*
|
|
319
|
+
* The OpenAI Agents SDK is instrumented in two layers:
|
|
320
|
+
*
|
|
321
|
+
* 1. A process-wide `TracingProcessor` (see `getOpenAiTracingProcessor` /
|
|
322
|
+
* `BitfabOpenAITracingProcessor`) registered once with `addTraceProcessor`.
|
|
323
|
+
* It captures everything *inside* a run — LLM calls, tool calls, handoffs —
|
|
324
|
+
* as Bitfab spans.
|
|
325
|
+
* 2. This handler's `wrapRun`, which owns the *root*. The processor never sees
|
|
326
|
+
* the caller's input (the SDK's trace events don't carry it), so a
|
|
327
|
+
* processor-only run records a root span with an empty input and is not
|
|
328
|
+
* replayable. `wrapRun` is a thin drop-in for `run()` that opens a
|
|
329
|
+
* `withSpan` root carrying the input and final output, so the run is
|
|
330
|
+
* replayable with no hand-written `withSpan`. The processor's spans nest
|
|
331
|
+
* underneath it automatically (it remaps onto the active span context).
|
|
332
|
+
*
|
|
333
|
+
* Use both together: register the processor once at startup, then call
|
|
334
|
+
* `handler.wrapRun(agent, input)` instead of `run(agent, input)`.
|
|
335
|
+
*/
|
|
336
|
+
|
|
337
|
+
type RootSpanOptions = {
|
|
338
|
+
type: "agent";
|
|
339
|
+
finalize: (result: unknown) => unknown | Promise<unknown>;
|
|
340
|
+
};
|
|
341
|
+
type WithSpanFn = <TArgs extends unknown[], TReturn>(traceFunctionKey: string, options: RootSpanOptions, fn: (...args: TArgs) => TReturn) => (...args: TArgs) => TReturn;
|
|
342
|
+
type RunInput<TContext, TAgent extends Agent<any, any>> = string | AgentInputItem[] | RunState<TContext, TAgent>;
|
|
343
|
+
/**
|
|
344
|
+
* OpenAI Agents SDK handler that records a replayable root span around a run.
|
|
345
|
+
*
|
|
346
|
+
* ```typescript
|
|
347
|
+
* import { Bitfab } from "@bitfab/sdk";
|
|
348
|
+
* import { addTraceProcessor, Agent, run } from "@openai/agents";
|
|
349
|
+
*
|
|
350
|
+
* const bitfab = new Bitfab({ apiKey: "..." });
|
|
351
|
+
* addTraceProcessor(bitfab.getOpenAiTracingProcessor()); // captures internals
|
|
352
|
+
*
|
|
353
|
+
* const agent = new Agent({ name: "Researcher", instructions: "..." });
|
|
354
|
+
* const handler = bitfab.getOpenAiAgentHandler("research-topic");
|
|
355
|
+
*
|
|
356
|
+
* // Swap run(agent, input) -> handler.wrapRun(agent, input)
|
|
357
|
+
* const result = await handler.wrapRun(agent, "Find X");
|
|
358
|
+
* return result.finalOutput;
|
|
359
|
+
* ```
|
|
360
|
+
*/
|
|
361
|
+
declare class BitfabOpenAIAgentHandler {
|
|
362
|
+
private readonly traceFunctionKey;
|
|
363
|
+
private readonly withSpanFn;
|
|
364
|
+
constructor(config: {
|
|
365
|
+
traceFunctionKey: string;
|
|
366
|
+
withSpan: WithSpanFn;
|
|
367
|
+
});
|
|
368
|
+
/**
|
|
369
|
+
* Drop-in replacement for the OpenAI Agents SDK's `run()` that records a
|
|
370
|
+
* replayable root `agent` span.
|
|
371
|
+
*
|
|
372
|
+
* The `input` is captured as the root span's input (as a single positional
|
|
373
|
+
* argument, so `replay(key, fn)` re-feeds it), and the run's `finalOutput`
|
|
374
|
+
* is recorded as the root output. For streaming runs (`{ stream: true }`),
|
|
375
|
+
* the result is handed back immediately and the final output is recorded
|
|
376
|
+
* once the stream completes — first-byte latency is untouched.
|
|
377
|
+
*
|
|
378
|
+
* The process-wide tracing processor (`getOpenAiTracingProcessor`) must still
|
|
379
|
+
* be registered: it captures the LLM/tool/handoff spans that nest beneath
|
|
380
|
+
* this root.
|
|
381
|
+
*/
|
|
382
|
+
wrapRun<TAgent extends Agent<any, any>, TContext = undefined>(agent: TAgent, input: RunInput<TContext, TAgent>, options?: NonStreamRunOptions<TContext>): Promise<RunResult<TContext, TAgent>>;
|
|
383
|
+
wrapRun<TAgent extends Agent<any, any>, TContext = undefined>(agent: TAgent, input: RunInput<TContext, TAgent>, options: StreamRunOptions<TContext>): Promise<StreamedRunResult<TContext, TAgent>>;
|
|
384
|
+
}
|
|
385
|
+
|
|
316
386
|
/**
|
|
317
387
|
* Per-trace environment exposed to customer code during replay.
|
|
318
388
|
*
|
|
@@ -863,6 +933,29 @@ declare class Bitfab {
|
|
|
863
933
|
* @returns A BitfabOpenAITracingProcessor instance configured for this client
|
|
864
934
|
*/
|
|
865
935
|
getOpenAiTracingProcessor(): BitfabOpenAITracingProcessor;
|
|
936
|
+
/**
|
|
937
|
+
* Get an OpenAI Agents SDK handler that records a replayable root span.
|
|
938
|
+
*
|
|
939
|
+
* The processor from {@link getOpenAiTracingProcessor} captures everything
|
|
940
|
+
* inside a run (LLM calls, tools, handoffs) but never sees the caller's
|
|
941
|
+
* input, so a processor-only run records an empty-input root and is not
|
|
942
|
+
* replayable. This handler's `wrapRun` is a drop-in for `run()` that opens a
|
|
943
|
+
* `withSpan` root carrying the input and final output; the processor's spans
|
|
944
|
+
* nest beneath it. Register the processor once at startup, then call
|
|
945
|
+
* `handler.wrapRun(agent, input)` in place of `run(agent, input)`.
|
|
946
|
+
*
|
|
947
|
+
* ```typescript
|
|
948
|
+
* import { addTraceProcessor, Agent, run } from "@openai/agents";
|
|
949
|
+
*
|
|
950
|
+
* addTraceProcessor(client.getOpenAiTracingProcessor());
|
|
951
|
+
* const handler = client.getOpenAiAgentHandler("research-topic");
|
|
952
|
+
* const result = await handler.wrapRun(agent, "Find X");
|
|
953
|
+
* ```
|
|
954
|
+
*
|
|
955
|
+
* @param traceFunctionKey - Groups traces under this key in Bitfab
|
|
956
|
+
* @returns A BitfabOpenAIAgentHandler configured for this client
|
|
957
|
+
*/
|
|
958
|
+
getOpenAiAgentHandler(traceFunctionKey: string): BitfabOpenAIAgentHandler;
|
|
866
959
|
/**
|
|
867
960
|
* Get a LangGraph/LangChain callback handler for tracing.
|
|
868
961
|
*
|
|
@@ -1117,7 +1210,7 @@ declare class BitfabFunction {
|
|
|
1117
1210
|
/**
|
|
1118
1211
|
* SDK version from package.json (injected at build time)
|
|
1119
1212
|
*/
|
|
1120
|
-
declare const __version__ = "0.
|
|
1213
|
+
declare const __version__ = "0.22.0";
|
|
1121
1214
|
|
|
1122
1215
|
/**
|
|
1123
1216
|
* Constants for the Bitfab SDK.
|
|
@@ -1185,4 +1278,4 @@ declare const finalizers: {
|
|
|
1185
1278
|
readableStream: typeof readableStream;
|
|
1186
1279
|
};
|
|
1187
1280
|
|
|
1188
|
-
export { type ActiveSpanContext, type AdaptContext, type AdaptInputsFn, type AllowedEnvVars, type BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, type BitfabConfig, BitfabError, BitfabFunction, BitfabLangGraphCallbackHandler as BitfabLangChainCallbackHandler, BitfabLangGraphCallbackHandler, BitfabOpenAITracingProcessor, type CodeChangeFile, type CurrentSpan, type CurrentTrace, DEFAULT_SERVICE_URL, type DbSnapshotConfig, type DbSnapshotProvider, type DbSnapshotRef, type DetachedTrace, type MockStrategy, type ProviderDefinition, ReplayEnvironment, type ReplayEnvironmentSnapshot, type ReplayItem, type ReplayOptions, type ReplayResult, SUPPORTED_PROVIDERS, type SpanOptions, type SpanType, type TokenUsage, type TraceResponse, type TracingProcessor, type WrapBAMLOptions, type WrappedBamlFn, __version__, finalizers, flushTraces, getCurrentSpan, getCurrentTrace };
|
|
1281
|
+
export { type ActiveSpanContext, type AdaptContext, type AdaptInputsFn, type AllowedEnvVars, type BamlExecutionResult, Bitfab, BitfabClaudeAgentHandler, type BitfabConfig, BitfabError, BitfabFunction, BitfabLangGraphCallbackHandler as BitfabLangChainCallbackHandler, BitfabLangGraphCallbackHandler, BitfabOpenAIAgentHandler, BitfabOpenAITracingProcessor, type CodeChangeFile, type CurrentSpan, type CurrentTrace, DEFAULT_SERVICE_URL, type DbSnapshotConfig, type DbSnapshotProvider, type DbSnapshotRef, type DetachedTrace, type MockStrategy, type ProviderDefinition, ReplayEnvironment, type ReplayEnvironmentSnapshot, type ReplayItem, type ReplayOptions, type ReplayResult, SUPPORTED_PROVIDERS, type SpanOptions, type SpanType, type TokenUsage, type TraceResponse, type TracingProcessor, type WrapBAMLOptions, type WrappedBamlFn, __version__, finalizers, flushTraces, getCurrentSpan, getCurrentTrace };
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
BitfabClaudeAgentHandler,
|
|
13
13
|
BitfabFunction,
|
|
14
14
|
BitfabLangGraphCallbackHandler,
|
|
15
|
+
BitfabOpenAIAgentHandler,
|
|
15
16
|
BitfabOpenAITracingProcessor,
|
|
16
17
|
DEFAULT_SERVICE_URL,
|
|
17
18
|
ReplayEnvironment,
|
|
@@ -21,7 +22,7 @@ import {
|
|
|
21
22
|
flushTraces,
|
|
22
23
|
getCurrentSpan,
|
|
23
24
|
getCurrentTrace
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-4SLFC266.js";
|
|
25
26
|
import {
|
|
26
27
|
BitfabError
|
|
27
28
|
} from "./chunk-EQI6ZJC3.js";
|
|
@@ -32,6 +33,7 @@ export {
|
|
|
32
33
|
BitfabFunction,
|
|
33
34
|
BitfabLangGraphCallbackHandler as BitfabLangChainCallbackHandler,
|
|
34
35
|
BitfabLangGraphCallbackHandler,
|
|
36
|
+
BitfabOpenAIAgentHandler,
|
|
35
37
|
BitfabOpenAITracingProcessor,
|
|
36
38
|
DEFAULT_SERVICE_URL,
|
|
37
39
|
ReplayEnvironment,
|
package/dist/node.cjs
CHANGED
|
@@ -493,6 +493,7 @@ __export(node_exports, {
|
|
|
493
493
|
BitfabFunction: () => BitfabFunction,
|
|
494
494
|
BitfabLangChainCallbackHandler: () => BitfabLangGraphCallbackHandler,
|
|
495
495
|
BitfabLangGraphCallbackHandler: () => BitfabLangGraphCallbackHandler,
|
|
496
|
+
BitfabOpenAIAgentHandler: () => BitfabOpenAIAgentHandler,
|
|
496
497
|
BitfabOpenAITracingProcessor: () => BitfabOpenAITracingProcessor,
|
|
497
498
|
DEFAULT_SERVICE_URL: () => DEFAULT_SERVICE_URL,
|
|
498
499
|
ReplayEnvironment: () => ReplayEnvironment,
|
|
@@ -513,7 +514,7 @@ registerAsyncLocalStorageClass(
|
|
|
513
514
|
);
|
|
514
515
|
|
|
515
516
|
// src/version.generated.ts
|
|
516
|
-
var __version__ = "0.
|
|
517
|
+
var __version__ = "0.22.0";
|
|
517
518
|
|
|
518
519
|
// src/constants.ts
|
|
519
520
|
var DEFAULT_SERVICE_URL = "https://bitfab.ai";
|
|
@@ -2295,6 +2296,39 @@ var BitfabLangGraphCallbackHandler = class {
|
|
|
2295
2296
|
}
|
|
2296
2297
|
};
|
|
2297
2298
|
|
|
2299
|
+
// src/openaiAgentSdk.ts
|
|
2300
|
+
var BitfabOpenAIAgentHandler = class {
|
|
2301
|
+
constructor(config) {
|
|
2302
|
+
this.traceFunctionKey = config.traceFunctionKey;
|
|
2303
|
+
this.withSpanFn = config.withSpan;
|
|
2304
|
+
}
|
|
2305
|
+
async wrapRun(agent, input, options) {
|
|
2306
|
+
const { run } = await import("@openai/agents");
|
|
2307
|
+
const isStreaming = options?.stream === true;
|
|
2308
|
+
const finalize = async (result) => {
|
|
2309
|
+
const res = result;
|
|
2310
|
+
if (isStreaming && res?.completed) {
|
|
2311
|
+
try {
|
|
2312
|
+
await res.completed;
|
|
2313
|
+
} catch {
|
|
2314
|
+
}
|
|
2315
|
+
}
|
|
2316
|
+
return res?.finalOutput;
|
|
2317
|
+
};
|
|
2318
|
+
const options_ = { type: "agent", finalize };
|
|
2319
|
+
const traced = this.withSpanFn(
|
|
2320
|
+
this.traceFunctionKey,
|
|
2321
|
+
options_,
|
|
2322
|
+
(agentInput) => run(
|
|
2323
|
+
agent,
|
|
2324
|
+
agentInput,
|
|
2325
|
+
options
|
|
2326
|
+
)
|
|
2327
|
+
);
|
|
2328
|
+
return traced(input);
|
|
2329
|
+
}
|
|
2330
|
+
};
|
|
2331
|
+
|
|
2298
2332
|
// src/client.ts
|
|
2299
2333
|
init_replayContext();
|
|
2300
2334
|
|
|
@@ -2988,6 +3022,34 @@ var Bitfab = class {
|
|
|
2988
3022
|
}
|
|
2989
3023
|
});
|
|
2990
3024
|
}
|
|
3025
|
+
/**
|
|
3026
|
+
* Get an OpenAI Agents SDK handler that records a replayable root span.
|
|
3027
|
+
*
|
|
3028
|
+
* The processor from {@link getOpenAiTracingProcessor} captures everything
|
|
3029
|
+
* inside a run (LLM calls, tools, handoffs) but never sees the caller's
|
|
3030
|
+
* input, so a processor-only run records an empty-input root and is not
|
|
3031
|
+
* replayable. This handler's `wrapRun` is a drop-in for `run()` that opens a
|
|
3032
|
+
* `withSpan` root carrying the input and final output; the processor's spans
|
|
3033
|
+
* nest beneath it. Register the processor once at startup, then call
|
|
3034
|
+
* `handler.wrapRun(agent, input)` in place of `run(agent, input)`.
|
|
3035
|
+
*
|
|
3036
|
+
* ```typescript
|
|
3037
|
+
* import { addTraceProcessor, Agent, run } from "@openai/agents";
|
|
3038
|
+
*
|
|
3039
|
+
* addTraceProcessor(client.getOpenAiTracingProcessor());
|
|
3040
|
+
* const handler = client.getOpenAiAgentHandler("research-topic");
|
|
3041
|
+
* const result = await handler.wrapRun(agent, "Find X");
|
|
3042
|
+
* ```
|
|
3043
|
+
*
|
|
3044
|
+
* @param traceFunctionKey - Groups traces under this key in Bitfab
|
|
3045
|
+
* @returns A BitfabOpenAIAgentHandler configured for this client
|
|
3046
|
+
*/
|
|
3047
|
+
getOpenAiAgentHandler(traceFunctionKey) {
|
|
3048
|
+
return new BitfabOpenAIAgentHandler({
|
|
3049
|
+
traceFunctionKey,
|
|
3050
|
+
withSpan: this.withSpan.bind(this)
|
|
3051
|
+
});
|
|
3052
|
+
}
|
|
2991
3053
|
/**
|
|
2992
3054
|
* Get a LangGraph/LangChain callback handler for tracing.
|
|
2993
3055
|
*
|
|
@@ -3742,6 +3804,7 @@ assertAsyncStorageRegistered();
|
|
|
3742
3804
|
BitfabFunction,
|
|
3743
3805
|
BitfabLangChainCallbackHandler,
|
|
3744
3806
|
BitfabLangGraphCallbackHandler,
|
|
3807
|
+
BitfabOpenAIAgentHandler,
|
|
3745
3808
|
BitfabOpenAITracingProcessor,
|
|
3746
3809
|
DEFAULT_SERVICE_URL,
|
|
3747
3810
|
ReplayEnvironment,
|