bitfab 0.68.1 → 0.68.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.
@@ -461,6 +461,12 @@ interface ReplayContext {
461
461
  fetchSpanOutput?: (externalSpanId: string) => Promise<unknown>;
462
462
  /** Internal framework state captured on the historical root span. */
463
463
  integrationFixtures?: Map<string, unknown>;
464
+ /**
465
+ * The final state of a streamed framework run replayed from this item's
466
+ * root, set by the framework integration so a drained stream replays to
467
+ * the same result its recording did.
468
+ */
469
+ streamResult?: unknown;
464
470
  dbBranchLease?: DbBranchLease;
465
471
  /**
466
472
  * Server-measured provisioning timings for this item's branch, echoed back
@@ -2323,6 +2329,7 @@ interface ActiveSpanContext$1 {
2323
2329
  */
2324
2330
  declare class BitfabLangGraphCallbackHandler {
2325
2331
  name: string;
2332
+ awaitHandlers: boolean;
2326
2333
  ignoreRetry: boolean;
2327
2334
  ignoreRetriever: boolean;
2328
2335
  ignoreCustomEvent: boolean;
@@ -2334,6 +2341,9 @@ declare class BitfabLangGraphCallbackHandler {
2334
2341
  private readonly captureTools;
2335
2342
  private runToSpan;
2336
2343
  private invocations;
2344
+ private claimedToolCalls;
2345
+ private stepRunIdByNamespace;
2346
+ private namespaceByStepRunId;
2337
2347
  constructor(config: {
2338
2348
  apiKey?: ApiKeyInput;
2339
2349
  traceFunctionKey: string;
@@ -2357,6 +2367,21 @@ declare class BitfabLangGraphCallbackHandler {
2357
2367
  * `close()` owns the worker's lifetime.
2358
2368
  */
2359
2369
  close(timeoutMs?: number): Promise<boolean>;
2370
+ /**
2371
+ * Mark a tool call as recorded by the LangGraph integration, so this
2372
+ * handler does not also record it. Returns the function that releases it.
2373
+ * @internal
2374
+ */
2375
+ claimToolCall(traceId: string, toolCallId: string): () => void;
2376
+ /**
2377
+ * The span ID of the running graph step with this checkpoint namespace,
2378
+ * when it is a recorded span in the given trace.
2379
+ * @internal
2380
+ */
2381
+ visibleStepSpanId(checkpointNamespace: string, traceId: string): string | null;
2382
+ private isClaimedToolCall;
2383
+ private rememberStep;
2384
+ private forgetStep;
2360
2385
  private startSpan;
2361
2386
  private completeSpan;
2362
2387
  private sendSpan;
@@ -2370,7 +2395,7 @@ declare class BitfabLangGraphCallbackHandler {
2370
2395
  handleLLMEnd(output: Record<string, unknown>, runId: string): Promise<void>;
2371
2396
  handleLLMError(error: unknown, runId: string): Promise<void>;
2372
2397
  handleLLMNewToken(): Promise<void>;
2373
- handleToolStart(tool: Record<string, unknown> | null | undefined, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
2398
+ handleToolStart(tool: Record<string, unknown> | null | undefined, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string, toolCallId?: string): Promise<void>;
2374
2399
  handleToolEnd(output: unknown, runId: string): Promise<void>;
2375
2400
  handleToolError(error: unknown, runId: string): Promise<void>;
2376
2401
  handleRetrieverStart(retriever: Record<string, unknown> | null | undefined, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
@@ -2378,6 +2403,13 @@ declare class BitfabLangGraphCallbackHandler {
2378
2403
  handleRetrieverError(error: unknown, runId: string): Promise<void>;
2379
2404
  }
2380
2405
  //#endregion
2406
+ //#region src/langgraphRuns.d.ts
2407
+ interface InstrumentableGraph {
2408
+ invoke(input: unknown, config?: unknown): Promise<unknown>;
2409
+ stream(input: unknown, config?: unknown): Promise<AsyncIterable<unknown>>;
2410
+ withConfig(config: Record<string, unknown>): InstrumentableGraph;
2411
+ }
2412
+ //#endregion
2381
2413
  //#region src/langgraphIntegration.d.ts
2382
2414
  interface SpanClient {
2383
2415
  withSpan<TArgs extends unknown[], TReturn>(traceFunctionKey: string, options: {
@@ -2388,6 +2420,7 @@ interface SpanClient {
2388
2420
  finalize?: (result: unknown) => unknown | Promise<unknown>;
2389
2421
  surface?: "inherit";
2390
2422
  instrumentation?: "langgraph";
2423
+ frameworkParentSpanId?: string;
2391
2424
  }, fn: (...args: TArgs) => TReturn): (...args: TArgs) => TReturn;
2392
2425
  }
2393
2426
  interface LangGraphTool {
@@ -2402,6 +2435,56 @@ interface LangGraphRunnable<TInput, TConfig, TReturn> {
2402
2435
  callbacks: unknown[];
2403
2436
  }): ConfiguredLangGraphRunnable<TInput, TConfig, TReturn>;
2404
2437
  }
2438
+ /**
2439
+ * The agent returned by the integration's `createAgent()` and
2440
+ * `createDeepAgent()`: the framework's own agent with `invoke` and `stream`
2441
+ * traced. Its state is typed loosely because the framework packages are
2442
+ * optional; pass the framework's own agent type as the builder's type
2443
+ * argument to keep its exact types.
2444
+ *
2445
+ * @experimental This API may change before it is stable.
2446
+ */
2447
+ interface BitfabLangGraphAgent {
2448
+ invoke(input: unknown, config?: Record<string, unknown>): Promise<any>;
2449
+ stream(input: unknown, config?: Record<string, unknown>): Promise<AsyncIterable<any>>;
2450
+ streamEvents(input: unknown, config: Record<string, unknown>, streamOptions?: Record<string, unknown>): AsyncIterable<any>;
2451
+ batch(inputs: unknown[], config?: Record<string, unknown> | Record<string, unknown>[]): Promise<any[]>;
2452
+ withConfig(config: Record<string, unknown>): BitfabLangGraphAgent;
2453
+ getState(config: Record<string, unknown>): Promise<unknown>;
2454
+ }
2455
+ /** The active Bitfab span, as the integration needs it. @internal */
2456
+ interface LangGraphActiveSpan {
2457
+ traceId: string;
2458
+ rootTraceFunctionKey: string;
2459
+ isRoot: boolean;
2460
+ }
2461
+ interface AgentToolCallRequest {
2462
+ toolCall: {
2463
+ id?: string;
2464
+ name: string;
2465
+ args?: unknown;
2466
+ };
2467
+ runtime?: {
2468
+ configurable?: Record<string, unknown>;
2469
+ };
2470
+ }
2471
+ type AgentToolCallHandler<TRequest extends AgentToolCallRequest> = (request: TRequest) => unknown;
2472
+ /**
2473
+ * A LangChain agent middleware that routes each tool call through the
2474
+ * integration. Pass it in `createAgent({ middleware: [...] })` or
2475
+ * `createDeepAgent({ middleware: [...] })`.
2476
+ *
2477
+ * @experimental This API may change before it is stable.
2478
+ */
2479
+ interface BitfabAgentMiddleware {
2480
+ readonly name: string;
2481
+ wrapToolCall<TRequest extends AgentToolCallRequest>(request: TRequest, handler: AgentToolCallHandler<TRequest>): Promise<any>;
2482
+ }
2483
+ interface AgentParams {
2484
+ middleware?: readonly unknown[];
2485
+ subagents?: readonly unknown[];
2486
+ [key: string]: unknown;
2487
+ }
2405
2488
  /**
2406
2489
  * Options for first-class LangGraph ToolNode replay interception.
2407
2490
  *
@@ -2428,12 +2511,82 @@ declare class BitfabLangGraphIntegration {
2428
2511
  private readonly client;
2429
2512
  private readonly traceFunctionKey;
2430
2513
  private readonly mockToolsOnReplay;
2514
+ private readonly getActiveSpan;
2515
+ private readonly getTraceRootContexts;
2516
+ private agentMiddleware;
2517
+ private runHost;
2431
2518
  constructor(config: {
2432
2519
  client: SpanClient;
2433
2520
  traceFunctionKey: string;
2434
2521
  callbackHandler: BitfabLangGraphCallbackHandler;
2435
2522
  options?: LangGraphIntegrationOptions;
2523
+ getActiveSpan?: () => LangGraphActiveSpan | null;
2524
+ getTraceRootContexts?: () => Record<string, unknown>[] | null;
2436
2525
  });
2526
+ /**
2527
+ * LangChain agent middleware that makes each tool call a replayable span
2528
+ * under the agent's `tools` step. Pass it in `createAgent({ middleware })`
2529
+ * or `createDeepAgent({ middleware })` and run the agent through
2530
+ * {@link instrument}. {@link createAgent} and {@link createDeepAgent} add it
2531
+ * for you.
2532
+ *
2533
+ * @experimental This API may change before it is stable.
2534
+ */
2535
+ get middleware(): BitfabAgentMiddleware;
2536
+ /**
2537
+ * Trace a compiled graph or agent as this trace function. Returns the same
2538
+ * graph, so it can be used anywhere the graph can (called directly, nested
2539
+ * as a node, or exported to LangGraph Platform), with every way of running
2540
+ * it traced: `invoke`, `stream`, `streamEvents`, and `batch`. Each attaches
2541
+ * the Bitfab callback handler and records the run as a replayable root
2542
+ * span carrying the graph input, with the final graph state as its output.
2543
+ * `withConfig` returns a graph that stays traced, and every other property
2544
+ * is the graph's own.
2545
+ *
2546
+ * When the graph has a checkpointer and the run has a `thread_id`, the
2547
+ * thread's checkpoint at the start of the run is recorded too, and replay
2548
+ * runs against that checkpoint in memory instead of the graph's own
2549
+ * checkpointer. Inside a `withTrace()` root, under any trace function key,
2550
+ * the checkpoint is recorded on that trace's root, and any run of the graph
2551
+ * during a replay uses an in-memory checkpointer.
2552
+ *
2553
+ * Replay a recorded run through any run method, for example
2554
+ * `bitfab.replay(key, (input) => agent.invoke(input))` or
2555
+ * `bitfab.replay(key, (input) => agent.stream(input))`; a streamed replay
2556
+ * is drained and its result is the final graph state.
2557
+ *
2558
+ * @experimental This API may change before it is stable.
2559
+ */
2560
+ instrument<TGraph extends InstrumentableGraph>(graph: TGraph): TGraph;
2561
+ private get graphRunHost();
2562
+ /**
2563
+ * Build a LangChain Deep Agents agent traced as this trace function: a
2564
+ * drop-in for `createDeepAgent` from `deepagents`. Every parameter is passed
2565
+ * through unchanged, except that `middleware` and each declarative
2566
+ * subagent's `middleware` gain {@link middleware}, so the tool calls of the
2567
+ * main agent and its subagents are replayable spans. Subagents given as a
2568
+ * compiled `runnable` or a remote `graphId` pass through as they are.
2569
+ * Returns the agent wrapped by {@link instrument}.
2570
+ *
2571
+ * @experimental This API may change before it is stable.
2572
+ */
2573
+ createDeepAgent<TAgent = BitfabLangGraphAgent>(params?: AgentParams): Promise<TAgent>;
2574
+ /**
2575
+ * Build a LangChain `createAgent` agent traced as this trace function: a
2576
+ * drop-in for `createAgent` from `langchain`. Every parameter is passed
2577
+ * through unchanged, except that `middleware` gains {@link middleware}.
2578
+ * Returns the agent wrapped by {@link instrument}.
2579
+ *
2580
+ * @experimental This API may change before it is stable.
2581
+ */
2582
+ createAgent<TAgent = BitfabLangGraphAgent>(params: AgentParams): Promise<TAgent>;
2583
+ private withMiddleware;
2584
+ private withSubagentMiddleware;
2585
+ private interceptToolCall;
2586
+ private stepSpanIdFor;
2587
+ private recordingTraceId;
2588
+ private runClaimedToolCall;
2589
+ private shouldMock;
2437
2590
  /**
2438
2591
  * Wrap tools before passing the same returned array to both
2439
2592
  * `model.bindTools()` and `new ToolNode()`. Each invocation becomes an
@@ -2445,7 +2598,7 @@ declare class BitfabLangGraphIntegration {
2445
2598
  * callback handler, preserves invocation config, and records only the graph
2446
2599
  * input as the replayable root input.
2447
2600
  *
2448
- * @experimental This API may change before it is stable.
2601
+ * @deprecated Use `instrument(graph).invoke`, which also traces `stream`.
2449
2602
  */
2450
2603
  createInvoker<TInput, TConfig, TReturn>(graph: LangGraphRunnable<TInput, TConfig, TReturn>): (input: TInput, config?: TConfig) => TReturn;
2451
2604
  private wrapTool;
@@ -3552,14 +3705,6 @@ interface CurrentTrace {
3552
3705
  */
3553
3706
  drop(): void;
3554
3707
  }
3555
- /**
3556
- * Get a handle to the current active span.
3557
- *
3558
- * Call this from inside a traced function (wrapped with `withSpan`) to get
3559
- * a span handle that allows adding context at runtime.
3560
- *
3561
- * Returns a no-op object if called outside of a span context (methods do nothing).
3562
- */
3563
3708
  declare function getCurrentSpan(): CurrentSpan;
3564
3709
  /**
3565
3710
  * Get the database branch the current replay item is running against.
@@ -3722,7 +3867,9 @@ interface SpanOptions {
3722
3867
  * tees internally) does not disturb the caller's own consumption. For the
3723
3868
  * Vercel AI SDK shape, pass the prebuilt `finalizers.aiSdk` helper.
3724
3869
  *
3725
- * Ignored for async-generator results, which are captured automatically.
3870
+ * For an async-generator result, `finalize` receives the array of yielded
3871
+ * values once iteration completes, and its return is recorded instead of
3872
+ * the default `{ yielded, return }`.
3726
3873
  */
3727
3874
  finalize?: (result: any) => unknown | Promise<unknown>;
3728
3875
  }
@@ -4035,6 +4182,23 @@ declare class Bitfab {
4035
4182
  * @experimental This API may change before it is stable.
4036
4183
  */
4037
4184
  getLangGraphIntegration(traceFunctionKey: string, options?: LangGraphIntegrationOptions): BitfabLangGraphIntegration;
4185
+ /**
4186
+ * Get the LangGraph integration for a LangChain Deep Agents agent. Alias of
4187
+ * {@link getLangGraphIntegration}, named for Deep Agents: build the agent
4188
+ * with its `createDeepAgent()`, which takes the same parameters as
4189
+ * `createDeepAgent` from `deepagents`.
4190
+ *
4191
+ * ```typescript
4192
+ * const integration = client.getDeepAgentsIntegration("research-agent")
4193
+ * const agent = await integration.createDeepAgent({ model, tools, subagents })
4194
+ * await agent.invoke({ messages: [{ role: "user", content: "..." }] })
4195
+ * ```
4196
+ *
4197
+ * @param traceFunctionKey - Groups traces under this key in Bitfab
4198
+ * @param options - Controls which tools are marked for replay mocking
4199
+ * @experimental This API may change before it is stable.
4200
+ */
4201
+ getDeepAgentsIntegration(traceFunctionKey: string, options?: LangGraphIntegrationOptions): BitfabLangGraphIntegration;
4038
4202
  /**
4039
4203
  * Get the first-class Rivet actor/workflow-context integration for an
4040
4204
  * existing trace root. The integration binds context and records effect
@@ -4541,6 +4705,15 @@ declare class BitfabFunction {
4541
4705
  * @experimental This API may change before it is stable.
4542
4706
  */
4543
4707
  getLangGraphIntegration(options?: LangGraphIntegrationOptions): BitfabLangGraphIntegration;
4708
+ /**
4709
+ * Get the LangChain Deep Agents integration bound to this key. Build the
4710
+ * agent with its `createDeepAgent()`, which takes the same parameters as
4711
+ * `createDeepAgent` from `deepagents`.
4712
+ *
4713
+ * @param options - Controls which tools are marked for replay mocking
4714
+ * @experimental This API may change before it is stable.
4715
+ */
4716
+ getDeepAgentsIntegration(options?: LangGraphIntegrationOptions): BitfabLangGraphIntegration;
4544
4717
  /**
4545
4718
  * Get the first-class Rivet actor-context integration bound to this key.
4546
4719
  * Use its `bind()` or `withContext()` outside this handle's `withTrace()`
@@ -4611,7 +4784,7 @@ interface CommitRef {
4611
4784
  /**
4612
4785
  * SDK version from package.json (injected at build time)
4613
4786
  */
4614
- declare const __version__ = "0.68.1";
4787
+ declare const __version__ = "0.68.3";
4615
4788
  //#endregion
4616
4789
  //#region src/constants.d.ts
4617
4790
  /**
@@ -4753,4 +4926,4 @@ declare function seedFromRegistry(registry: ReplayRegistry, pipeline: string, ca
4753
4926
  run?: boolean;
4754
4927
  }): Promise<SeedResult>;
4755
4928
  //#endregion
4756
- export { ReplayBranch as $, ExperimentRollup as $n, MockOverrideResolver as $r, TraceLabels as $t, SpanMethodDecoratorContext as A, ScenarioAction as An, VercelGenerateResult as Ar, GraderLabelSource as At, ActiveSpanContext as B, TraceAssertionsResult as Bn, SaveCategoryParams as Br, HumanLabelOutcome as Bt, NodeMethodDecorator as C, SaveAssertionsParams as Cn, RerunGradersResult as Cr, BitfabLangGraphIntegration as Ct, SeedCaseOptions as D, SaveScenarioParams as Dn, BitfabLanguageModelMiddleware as Dr, GetGraderVerdictsParams as Dt, ReseedResult as E, SaveScenarioHistoryEntry as En, UpdateDatasetParams as Er, GetGraderLabelsParams as Et, WrappedBamlFn as F, ScenarioHistoryEntry as Fn, AssertionCategorySummary as Fr, GraderVerdictUpdate as Ft, SpanListField as G, TraceTarget as Gn, SpanOccurrence as Gr, LabelConfidence as Gt, TraceResponse as H, TraceSearchFilters as Hn, CodeChangeFile as Hr, HumanVerdictOutcome as Ht, getCurrentReplayBranch as I, ScenarioSource as In, CategoriesClient as Ir, GradersClient as It, SpansClient as J, Experiment as Jn, flushTraces as Jr, LabelStatus as Jt, SpanListParams as K, TraceTargetOccurrence as Kn, SpanType as Kr, LabelOutcome as Kt, getCurrentSpan as L, ScenarioTrigger as Ln, Category as Lr, ArchiveLabelTarget as Lt, WrapBAMLOptions as M, ScenarioData as Mn, BitfabClaudeAgentHandler as Mr, GraderVerdict as Mt, WrapJevOptions as N, ScenarioDataAppend as Nn, AssertionCategoriesClient as Nr, GraderVerdictOutcome as Nt, SeedRunOptions as O, SavedTraceAssertion as On, BitfabVercelAiHandler as Or, GraderLabel as Ot, WrapOpenRouterOptions as P, ScenarioDataOrigin as Pn, AssertionCategory as Pr, GraderVerdictSource as Pt, RivetIntegrationOptions as Q, ExperimentPage as Qn, MockOverrideInput as Qr, PassFailVerdict as Qt, getCurrentTrace as R, TraceAssertion as Rn, CategorySummary as Rr, ArchiveVerdictTarget as Rt, DetachedTrace as S, JustificationSpan as Si, SaveAssertionsAllParams as Sn, RerunGradersOptions as Sr, BitfabOpenAIAgentHandler as St, ReseedOptions as T, SaveScenarioData as Tn, SaveDatasetResult as Tr, BitfabLangGraphCallbackHandler as Tt, TracingProcessor as U, TraceSearchParams as Un, HttpClient as Ur, HumanVerdictUpdate as Ut, BitfabOpenAITracingProcessor as V, TraceAssertionsUpdate as Vn, CapturedSpan as Vr, HumanLabelUpdate as Vt, ListedSpan as W, TraceSearchResult as Wn, SpanLookup as Wr, LabelAction as Wt, RivetContextLike as X, ExperimentCodeChangeTotals as Xn, MockOverride as Xr, LabelUpdate as Xt, BitfabRivetIntegration as Y, ExperimentCategoryTally as Yn, DbBranchTimings as Yr, LabelTarget as Yt, RivetEffectType as Z, ExperimentJitter as Zn, MockOverrideCtx as Zr, LabelsClient as Zt, BitfabConfig as _, ApprovalFields as _i, AssertionRewrite as _n, GraderRerunStatus as _r, serializeReplayResult as _t, ReplayRegistryOptions as a, MixedTracingError as ai, VerdictSource as an, ExperimentsClient as ar, MockStrategy as at, CurrentSpan as b, Assignee as bi, GenerateAssertionsOptions as bn, RemoveDatasetGradersResult as br, OrganizationMember as bt, SeedResult as c, DbSnapshotRef as ci, VerdictUpdate as cn, AddDatasetTracesResult as cr, ReplayItem as ct, seedFromRegistry as d, SelectiveReplayDecision as di, AssertionEvidenceParameter as dn, DatasetTraceIds as dr, ReplayOptions as dt, MockValue as ei, TraceVerdicts as en, ExperimentRollupResult as er, AdaptContext as et, finalizers as f, SelectiveReplayOptions as fi, AssertionGeneration as fn, DatasetsClient as fr, ReplayProgress as ft, Bitfab as g, ProviderDefinition as gi, AssertionLabelEvidence as gn, GraderRerunResult as gr, reportReplayProgress as gt, CommitRef as h, BamlExecutionResult as hi, AssertionGenerationTimeoutError as hn, GraderRerunProgress as hr, TraceIngestionType as ht, ReplayRegistryContext as i, BitfabError as ii, VerdictOutcome as in, ExperimentTotals as ir, DbBranchReplayError as it, SpanOptions as j, ScenarioActualOutcome as jn, VercelStreamResult as jr, GraderLabelUpdate as jt, SpanMethodDecorator as k, Scenario as kn, VercelCallParams as kr, GraderLabelOutcome as kt, defineReplayRegistry as l, SUPPORTED_PROVIDERS as li, VerdictsClient as ln, Dataset as lr, ReplayItemFinishProgress as lt, __version__ as m, AllowedEnvVars as mi, AssertionGenerationStatus as mn, GraderRerunError as mr, ReplayResult as mt, ReplayRegistration as n, NodeMatcher as ni, VerdictAction as nn, ExperimentStatus as nr, BITFAB_PROGRESS_PREFIX as nt, ReseedRegistryResult as o, DbSnapshotConfig as oi, VerdictStatus as on, ListExperimentsParams as or, ReplayError as ot, DEFAULT_SERVICE_URL as p, SelectiveReplayReport as pi, AssertionGenerationError as pn, GraderRerun as pr, ReplayProgressItem as pt, SpanListResult as q, TracesClient as qn, TokenUsage as qr, LabelSource as qt, ReplayRegistry as r, SpanNodeMeta as ri, VerdictConfidence as rn, ExperimentTally as rr, DbBranchOptions as rt, SeedCase as s, DbSnapshotProvider as si, VerdictTarget as sn, AddDatasetGradersResult as sr, ReplayExperiment as st, ReplayOptionsFactory as t, NO_MOCK_OVERRIDE as ti, Verdict as tn, ExperimentRunBy as tr, AdaptInputsFn as tt, reseedFromRegistry as u, ReplayNodeIdentity as ui, ArchiveAssertionsParams as un, DatasetGraderRef as ur, ReplayItemStartProgress as ut, BitfabFunction as v, ApprovalState as vi, AssertionRewriteStatus as vn, GraderRerunTimeoutError as vr, ReplayInterrupt as vt, NodeOptions as w, SaveScenarioActualOutcome as wn, SaveDatasetParams as wr, LangGraphIntegrationOptions as wt, CurrentTrace as x, Justification as xi, SaveAssertion as xn, RemoveDatasetTracesResult as xr, OrganizationMembersClient as xt, CaptureWhen as y, Approver as yi, AssertionVerdictEvidence as yn, ListDatasetsParams as yr, ReplayInterruptSignal as yt, CaptureSurface as z, TraceAssertionSource as zn, SaveAssertionCategoryParams as zr, AssertionVerdict as zt };
4929
+ export { ReplayBranch as $, ExperimentJitter as $n, MockOverrideCtx as $r, LabelsClient as $t, SpanMethodDecoratorContext as A, SavedTraceAssertion as An, BitfabVercelAiHandler as Ar, GraderLabel as At, ActiveSpanContext as B, TraceAssertion as Bn, CategorySummary as Br, ArchiveVerdictTarget as Bt, NodeMethodDecorator as C, Justification as Ci, SaveAssertion as Cn, RemoveDatasetTracesResult as Cr, BitfabAgentMiddleware as Ct, SeedCaseOptions as D, SaveScenarioData as Dn, SaveDatasetResult as Dr, BitfabLangGraphCallbackHandler as Dt, ReseedResult as E, SaveScenarioActualOutcome as En, SaveDatasetParams as Er, LangGraphIntegrationOptions as Et, WrappedBamlFn as F, ScenarioDataAppend as Fn, AssertionCategoriesClient as Fr, GraderVerdictOutcome as Ft, SpanListField as G, TraceSearchParams as Gn, HttpClient as Gr, HumanVerdictUpdate as Gt, TraceResponse as H, TraceAssertionsResult as Hn, SaveCategoryParams as Hr, HumanLabelOutcome as Ht, getCurrentReplayBranch as I, ScenarioDataOrigin as In, AssertionCategory as Ir, GraderVerdictSource as It, SpansClient as J, TraceTargetOccurrence as Jn, SpanType as Jr, LabelOutcome as Jt, SpanListParams as K, TraceSearchResult as Kn, SpanLookup as Kr, LabelAction as Kt, getCurrentSpan as L, ScenarioHistoryEntry as Ln, AssertionCategorySummary as Lr, GraderVerdictUpdate as Lt, WrapBAMLOptions as M, ScenarioAction as Mn, VercelGenerateResult as Mr, GraderLabelSource as Mt, WrapJevOptions as N, ScenarioActualOutcome as Nn, VercelStreamResult as Nr, GraderLabelUpdate as Nt, SeedRunOptions as O, SaveScenarioHistoryEntry as On, UpdateDatasetParams as Or, GetGraderLabelsParams as Ot, WrapOpenRouterOptions as P, ScenarioData as Pn, BitfabClaudeAgentHandler as Pr, GraderVerdict as Pt, RivetIntegrationOptions as Q, ExperimentCodeChangeTotals as Qn, MockOverride as Qr, LabelUpdate as Qt, getCurrentTrace as R, ScenarioSource as Rn, CategoriesClient as Rr, GradersClient as Rt, DetachedTrace as S, Assignee as Si, GenerateAssertionsOptions as Sn, RemoveDatasetGradersResult as Sr, BitfabOpenAIAgentHandler as St, ReseedOptions as T, SaveAssertionsParams as Tn, RerunGradersResult as Tr, BitfabLangGraphIntegration as Tt, TracingProcessor as U, TraceAssertionsUpdate as Un, CapturedSpan as Ur, HumanLabelUpdate as Ut, BitfabOpenAITracingProcessor as V, TraceAssertionSource as Vn, SaveAssertionCategoryParams as Vr, AssertionVerdict as Vt, ListedSpan as W, TraceSearchFilters as Wn, CodeChangeFile as Wr, HumanVerdictOutcome as Wt, RivetContextLike as X, Experiment as Xn, flushTraces as Xr, LabelStatus as Xt, BitfabRivetIntegration as Y, TracesClient as Yn, TokenUsage as Yr, LabelSource as Yt, RivetEffectType as Z, ExperimentCategoryTally as Zn, DbBranchTimings as Zr, LabelTarget as Zt, BitfabConfig as _, BamlExecutionResult as _i, AssertionGenerationTimeoutError as _n, GraderRerunProgress as _r, serializeReplayResult as _t, ReplayRegistryOptions as a, SpanNodeMeta as ai, VerdictConfidence as an, ExperimentTally as ar, MockStrategy as at, CurrentSpan as b, ApprovalState as bi, AssertionRewriteStatus as bn, GraderRerunTimeoutError as br, OrganizationMember as bt, SeedResult as c, DbSnapshotConfig as ci, VerdictStatus as cn, ListExperimentsParams as cr, ReplayItem as ct, seedFromRegistry as d, SUPPORTED_PROVIDERS as di, VerdictsClient as dn, Dataset as dr, ReplayOptions as dt, MockOverrideInput as ei, PassFailVerdict as en, ExperimentPage as er, AdaptContext as et, finalizers as f, ReplayNodeIdentity as fi, ArchiveAssertionsParams as fn, DatasetGraderRef as fr, ReplayProgress as ft, Bitfab as g, AllowedEnvVars as gi, AssertionGenerationStatus as gn, GraderRerunError as gr, reportReplayProgress as gt, CommitRef as h, SelectiveReplayReport as hi, AssertionGenerationError as hn, GraderRerun as hr, TraceIngestionType as ht, ReplayRegistryContext as i, NodeMatcher as ii, VerdictAction as in, ExperimentStatus as ir, DbBranchReplayError as it, SpanOptions as j, Scenario as jn, VercelCallParams as jr, GraderLabelOutcome as jt, SpanMethodDecorator as k, SaveScenarioParams as kn, BitfabLanguageModelMiddleware as kr, GetGraderVerdictsParams as kt, defineReplayRegistry as l, DbSnapshotProvider as li, VerdictTarget as ln, AddDatasetGradersResult as lr, ReplayItemFinishProgress as lt, __version__ as m, SelectiveReplayOptions as mi, AssertionGeneration as mn, DatasetsClient as mr, ReplayResult as mt, ReplayRegistration as n, MockValue as ni, TraceVerdicts as nn, ExperimentRollupResult as nr, BITFAB_PROGRESS_PREFIX as nt, ReseedRegistryResult as o, BitfabError as oi, VerdictOutcome as on, ExperimentTotals as or, ReplayError as ot, DEFAULT_SERVICE_URL as p, SelectiveReplayDecision as pi, AssertionEvidenceParameter as pn, DatasetTraceIds as pr, ReplayProgressItem as pt, SpanListResult as q, TraceTarget as qn, SpanOccurrence as qr, LabelConfidence as qt, ReplayRegistry as r, NO_MOCK_OVERRIDE as ri, Verdict as rn, ExperimentRunBy as rr, DbBranchOptions as rt, SeedCase as s, MixedTracingError as si, VerdictSource as sn, ExperimentsClient as sr, ReplayExperiment as st, ReplayOptionsFactory as t, MockOverrideResolver as ti, TraceLabels as tn, ExperimentRollup as tr, AdaptInputsFn as tt, reseedFromRegistry as u, DbSnapshotRef as ui, VerdictUpdate as un, AddDatasetTracesResult as ur, ReplayItemStartProgress as ut, BitfabFunction as v, ProviderDefinition as vi, AssertionLabelEvidence as vn, GraderRerunResult as vr, ReplayInterrupt as vt, NodeOptions as w, JustificationSpan as wi, SaveAssertionsAllParams as wn, RerunGradersOptions as wr, BitfabLangGraphAgent as wt, CurrentTrace as x, Approver as xi, AssertionVerdictEvidence as xn, ListDatasetsParams as xr, OrganizationMembersClient as xt, CaptureWhen as y, ApprovalFields as yi, AssertionRewrite as yn, GraderRerunStatus as yr, ReplayInterruptSignal as yt, CaptureSurface as z, ScenarioTrigger as zn, Category as zr, ArchiveLabelTarget as zt };