diff --git a/src/main/java/dev/braintrust/api/BraintrustApiClient.java b/src/main/java/dev/braintrust/api/BraintrustApiClient.java index 126e91f..1095f66 100644 --- a/src/main/java/dev/braintrust/api/BraintrustApiClient.java +++ b/src/main/java/dev/braintrust/api/BraintrustApiClient.java @@ -77,6 +77,14 @@ Optional getPrompt( Optional getFunction( @Nonnull String projectName, @Nonnull String slug, @Nullable String version); + /** + * Get a function by its ID. + * + * @param functionId the ID of the function + * @return the function if found + */ + Optional getFunctionById(@Nonnull String functionId); + /** * Invoke a function (scorer, prompt, or tool) by its ID. * @@ -86,6 +94,15 @@ Optional getFunction( */ Object invokeFunction(@Nonnull String functionId, @Nonnull FunctionInvokeRequest request); + /** + * Execute a BTQL (Braintrust Query Language) query. Supports both BTQL pipe syntax and standard + * SQL syntax. + * + * @param query the BTQL/SQL query string + * @return the query result containing rows of data + */ + BtqlQueryResponse btqlQuery(@Nonnull String query); + static BraintrustApiClient of(BraintrustConfig config) { return new HttpImpl(config); } @@ -351,6 +368,21 @@ public Optional getFunction( } } + @Override + public Optional getFunctionById(@Nonnull String functionId) { + Objects.requireNonNull(functionId, "functionId must not be null"); + try { + String path = "/v1/function/" + functionId; + return Optional.of(getAsync(path, Function.class).get()); + } catch (InterruptedException | ExecutionException e) { + if (e.getCause() instanceof ApiException apiEx + && apiEx.getMessage().contains("404")) { + return Optional.empty(); + } + throw new RuntimeException(e); + } + } + @Override public Object invokeFunction( @Nonnull String functionId, @Nonnull FunctionInvokeRequest request) { @@ -364,6 +396,17 @@ public Object invokeFunction( } } + @Override + public BtqlQueryResponse btqlQuery(@Nonnull String query) { + Objects.requireNonNull(query, "query must not be null"); + try { + var request = new BtqlQueryRequest(query); + return postAsync("/btql", request, BtqlQueryResponse.class).get(); + } catch (InterruptedException | ExecutionException e) { + throw new ApiException("Failed to execute BTQL query", e); + } + } + private CompletableFuture getAsync(String path, Class responseType) { var request = HttpRequest.newBuilder() @@ -661,11 +704,21 @@ public Optional getFunction( throw new RuntimeException("will not be invoked"); } + @Override + public Optional getFunctionById(@Nonnull String functionId) { + throw new RuntimeException("will not be invoked"); + } + @Override public Object invokeFunction( @Nonnull String functionId, @Nonnull FunctionInvokeRequest request) { throw new RuntimeException("will not be invoked"); } + + @Override + public BtqlQueryResponse btqlQuery(@Nonnull String query) { + throw new RuntimeException("will not be invoked"); + } } // Request/Response DTOs @@ -794,50 +847,58 @@ record FunctionListResponse(List objects) {} * *

For remote Python/TypeScript scorers, the scorer handler parameters (input, output, * expected, metadata) must be wrapped in the outer input field. + * + *

The parent field enables distributed tracing by linking the remote function's spans to the + * caller's span context. It can be either a base64-encoded SpanComponents string or an object + * with object_type, object_id, and row_ids. */ - record FunctionInvokeRequest(@Nullable Object input, @Nullable String version) { + record FunctionInvokeRequest( + @Nullable Object input, @Nullable String version, @Nullable Object parent) { /** Create a simple invoke request with just input */ public static FunctionInvokeRequest of(Object input) { - return new FunctionInvokeRequest(input, null); + return new FunctionInvokeRequest(input, null, null); } /** Create a simple invoke request with input and version */ public static FunctionInvokeRequest of(Object input, @Nullable String version) { - return new FunctionInvokeRequest(input, version); - } - - /** - * Create an invoke request for a scorer with input, output, expected, and metadata. This - * maps to the standard scorer handler signature: handler(input, output, expected, metadata) - * - *

The scorer args are wrapped in the outer input field as required by the invoke API. - */ - public static FunctionInvokeRequest forScorer( - Object input, Object output, Object expected, Object metadata) { - return forScorer(input, output, expected, metadata, null); + return new FunctionInvokeRequest(input, version, null); } /** - * Create an invoke request for a scorer with input, output, expected, metadata, and - * version. This maps to the standard scorer handler signature: handler(input, output, - * expected, metadata) + * Create an invoke request for a scorer with distributed tracing support. * - *

The scorer args are wrapped in the outer input field as required by the invoke API. + * @param input the input to the task being scored + * @param output the output from the task being scored + * @param expected the expected output + * @param metadata additional metadata + * @param version optional function version + * @param parent optional parent for distributed tracing - can be a base64-encoded + * SpanComponents string or a Map with object_type, object_id, and row_ids */ - public static FunctionInvokeRequest forScorer( + public static FunctionInvokeRequest of( Object input, Object output, Object expected, Object metadata, - @Nullable String version) { + @Nullable String version, + @Nullable Object parent) { // Wrap scorer args in an inner map that becomes the outer "input" field var scorerArgs = new java.util.LinkedHashMap(); scorerArgs.put("input", input); scorerArgs.put("output", output); scorerArgs.put("expected", expected); scorerArgs.put("metadata", metadata); - return new FunctionInvokeRequest(scorerArgs, version); + return new FunctionInvokeRequest(scorerArgs, version, parent); } } + + /** Request body for BTQL queries. */ + record BtqlQueryRequest(String query) {} + + /** + * Response from a BTQL query. The data field contains the rows returned by the query, where + * each row is a map of column names to values. + */ + record BtqlQueryResponse(List> data) {} } diff --git a/src/main/java/dev/braintrust/config/BraintrustConfig.java b/src/main/java/dev/braintrust/config/BraintrustConfig.java index b7602ad..158cad5 100644 --- a/src/main/java/dev/braintrust/config/BraintrustConfig.java +++ b/src/main/java/dev/braintrust/config/BraintrustConfig.java @@ -37,7 +37,6 @@ public final class BraintrustConfig extends BaseConfig { private final boolean enableTraceConsoleLog = getConfig("BRAINTRUST_ENABLE_TRACE_CONSOLE_LOG", false); private final boolean debug = getConfig("BRAINTRUST_DEBUG", false); - private final boolean experimentalOtelLogs = getConfig("BRAINTRUST_X_OTEL_LOGS", false); private final Duration requestTimeout = Duration.ofSeconds(getConfig("BRAINTRUST_REQUEST_TIMEOUT", 30)); @@ -47,10 +46,6 @@ public final class BraintrustConfig extends BaseConfig { /** Custom X509 trust manager for OTLP exporter. Builder-only field, not backed by envars. */ private final X509TrustManager x509TrustManager; - /** Setting for unit testing. Do not use in production. */ - private final boolean exportSpansInMemoryForUnitTest = - getConfig("BRAINTRUST_JAVA_EXPORT_SPANS_IN_MEMORY_FOR_UNIT_TEST", false); - /** CORS origins to allow when running remote eval devserver */ private final String devserverCorsOriginWhitelistCsv = getConfig( @@ -192,19 +187,6 @@ public Builder requestTimeout(Duration value) { return this; } - // hiding visibility. only used for testing - Builder experimentalOtelLogs(boolean value) { - envOverrides.put("BRAINTRUST_X_OTEL_LOGS", String.valueOf(value)); - return this; - } - - // only used for testing - public Builder exportSpansInMemoryForUnitTest(boolean value) { - envOverrides.put( - "BRAINTRUST_JAVA_EXPORT_SPANS_IN_MEMORY_FOR_UNIT_TEST", String.valueOf(value)); - return this; - } - public Builder sslContext(SSLContext value) { this.sslContext = value; return this; diff --git a/src/main/java/dev/braintrust/devserver/Devserver.java b/src/main/java/dev/braintrust/devserver/Devserver.java index be89be8..4e1c64e 100644 --- a/src/main/java/dev/braintrust/devserver/Devserver.java +++ b/src/main/java/dev/braintrust/devserver/Devserver.java @@ -594,10 +594,12 @@ private void setScoreSpanAttributes( scoreSpanAttrs.put("generation", braintrustGeneration); } + var scoresJson = json(scorerScores); scoreSpan .setAttribute(PARENT, braintrustParent.toParentValue()) .setAttribute("braintrust.span_attributes", json(scoreSpanAttrs)) - .setAttribute("braintrust.output_json", json(scorerScores)); + .setAttribute("braintrust.output_json", scoresJson) + .setAttribute("braintrust.scores", scoresJson); } private void sendSSEEvent(OutputStream os, String eventType, String data) throws IOException { @@ -1075,10 +1077,7 @@ private static Scorer resolveRemoteScorer( } return new ScorerBrainstoreImpl<>( - apiClient, - functionIdSpec.getFunctionId(), - remoteScorer.getName(), - functionIdSpec.getVersion()); + apiClient, functionIdSpec.getFunctionId(), functionIdSpec.getVersion()); } public static class Builder { diff --git a/src/main/java/dev/braintrust/eval/Eval.java b/src/main/java/dev/braintrust/eval/Eval.java index b09c143..29f23aa 100644 --- a/src/main/java/dev/braintrust/eval/Eval.java +++ b/src/main/java/dev/braintrust/eval/Eval.java @@ -116,32 +116,33 @@ private void evalOne(String experimentId, DatasetCase datasetCase throw new RuntimeException(e); } } - { // run scorers + // run scorers - one span per scorer + for (var scorer : scorers) { var scoreSpan = tracer.spanBuilder("score") .setAttribute(PARENT, "experiment_id:" + experimentId) - .setAttribute( - "braintrust.span_attributes", json(Map.of("type", "score"))) .startSpan(); try (var unused = BraintrustContext.ofExperiment(experimentId, scoreSpan).makeCurrent()) { + var scores = scorer.score(taskResult); // linked map to preserve ordering. Not in the spec but nice user experience - final Map nameToScore = new LinkedHashMap<>(); - scorers.forEach( - scorer -> { - var scores = scorer.score(taskResult); - scores.forEach( - score -> { - if (score.value() < 0.0 || score.value() > 1.0) { - throw new RuntimeException( - "score must be between 0 and 1: %s : %s" - .formatted( - scorer.getName(), score)); - } - nameToScore.put(score.name(), score.value()); - }); - }); - scoreSpan.setAttribute("braintrust.scores", json(nameToScore)); + final Map scorerScores = new LinkedHashMap<>(); + for (var score : scores) { + if (score.value() < 0.0 || score.value() > 1.0) { + throw new RuntimeException( + "score must be between 0 and 1: %s : %s" + .formatted(scorer.getName(), score)); + } + scorerScores.put(score.name(), score.value()); + } + // Set span attributes with scorer name + Map spanAttrs = new LinkedHashMap<>(); + spanAttrs.put("type", "score"); + spanAttrs.put("name", scorer.getName()); + scoreSpan.setAttribute("braintrust.span_attributes", json(spanAttrs)); + var scoresJson = json(scorerScores); + scoreSpan.setAttribute("braintrust.output_json", scoresJson); + scoreSpan.setAttribute("braintrust.scores", scoresJson); } finally { scoreSpan.end(); } diff --git a/src/main/java/dev/braintrust/eval/Scorer.java b/src/main/java/dev/braintrust/eval/Scorer.java index f6dea50..d654a48 100644 --- a/src/main/java/dev/braintrust/eval/Scorer.java +++ b/src/main/java/dev/braintrust/eval/Scorer.java @@ -78,6 +78,6 @@ static Scorer fetchFromBraintrust( + ", slug=" + scorerSlug)); - return new ScorerBrainstoreImpl<>(apiClient, function.id(), function.name(), version); + return new ScorerBrainstoreImpl<>(apiClient, function.id(), version); } } diff --git a/src/main/java/dev/braintrust/eval/ScorerBrainstoreImpl.java b/src/main/java/dev/braintrust/eval/ScorerBrainstoreImpl.java index 88d32d3..3baceec 100644 --- a/src/main/java/dev/braintrust/eval/ScorerBrainstoreImpl.java +++ b/src/main/java/dev/braintrust/eval/ScorerBrainstoreImpl.java @@ -1,10 +1,18 @@ package dev.braintrust.eval; +import dev.braintrust.BraintrustUtils; import dev.braintrust.api.BraintrustApiClient; +import dev.braintrust.trace.BraintrustTracing; +import dev.braintrust.trace.SpanComponents; +import io.opentelemetry.api.baggage.Baggage; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanContext; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import javax.annotation.Nullable; +import lombok.extern.slf4j.Slf4j; /** * A scorer that invokes a remote Braintrust function to compute scores. @@ -12,52 +20,120 @@ *

This implementation fetches a scorer function from Braintrust and invokes it via the API for * each task result. The remote function receives the input, output, expected, and metadata as * arguments. + * + *

Supports distributed tracing: if an object ID is available in OTEL baggage and a valid span + * context exists, the scorer will pass parent span information to the remote function, enabling the + * remote function's spans to appear as children of the local scorer span. */ +@Slf4j public class ScorerBrainstoreImpl implements Scorer { private final BraintrustApiClient apiClient; private final String functionId; - private final String scorerName; private final @Nullable String version; + private final AtomicReference braintrustFunction = + new AtomicReference<>(null); + private final AtomicReference scorerName = new AtomicReference<>(null); /** * Create a new remote scorer. * * @param apiClient the API client to use for invoking the function - * @param functionId the ID of the function to invoke - * @param scorerName the name of the scorer (used as default score name) + * @param functionId braintrust function id * @param version optional version of the function to invoke. null always invokes latest * version. */ public ScorerBrainstoreImpl( - BraintrustApiClient apiClient, - String functionId, - String scorerName, - @Nullable String version) { + BraintrustApiClient apiClient, String functionId, @Nullable String version) { this.apiClient = apiClient; this.functionId = functionId; - this.scorerName = scorerName; this.version = version; } @Override public String getName() { - return scorerName; + ensureFunctionInfoCached(); + return scorerName.get(); } @Override public List score(TaskResult taskResult) { + // Build parent span components for distributed tracing (as object, not base64 string) + Object parent = buildParentSpanComponents(); + var request = - BraintrustApiClient.FunctionInvokeRequest.forScorer( + BraintrustApiClient.FunctionInvokeRequest.of( taskResult.datasetCase().input(), taskResult.result(), taskResult.datasetCase().expected(), taskResult.datasetCase().metadata(), - version); + version, + parent); - Object result = apiClient.invokeFunction(functionId, request); + Object result = apiClient.invokeFunction(getFunctionId(), request); return parseScoreResult(result); } + private String getFunctionName() { + ensureFunctionInfoCached(); + return braintrustFunction.get().name(); + } + + private String getFunctionId() { + ensureFunctionInfoCached(); + return braintrustFunction.get().id(); + } + + private void ensureFunctionInfoCached() { + if (scorerName.get() == null || braintrustFunction.get() == null) { + // we could get multiple threads in here but that's fine (just redundant work) + var function = apiClient.getFunctionById(functionId).orElseThrow(); + var projectAndOrgInfo = + apiClient.getProjectAndOrgInfo(function.projectId()).orElseThrow(); + var functionVersion = this.version == null ? "latest" : this.version; + braintrustFunction.compareAndExchange(null, function); + scorerName.compareAndExchange( + null, + "invoke-%s-%s-%s" + .formatted( + projectAndOrgInfo.project().name(), + function.slug(), + functionVersion)); + } + } + + /** + * Builds the parent span components for distributed tracing. + * + *

Extracts the experiment ID from OTEL baggage and span/trace IDs from the current span + * context. Returns the parent as a Map that can be serialized directly (the API accepts both + * base64-encoded strings and object format). + * + * @return parent object for distributed tracing, or null if tracing context not available + */ + @Nullable + private Map buildParentSpanComponents() { + try { + // Get current span context + SpanContext spanContext = Span.current().getSpanContext(); + if (!spanContext.isValid()) { + return null; + } + + // Get experiment ID from baggage (format: "experiment_id:abc123") + String parentValue = Baggage.current().getEntryValue(BraintrustTracing.PARENT_KEY); + if (parentValue == null || parentValue.isEmpty()) { + return null; + } + + var rowIds = + new SpanComponents.RowIds(spanContext.getSpanId(), spanContext.getTraceId()); + return new SpanComponents(BraintrustUtils.parseParent(parentValue), rowIds).toMap(); + } catch (Exception e) { + log.warn("Failed to build parent span components: {}", e.getMessage(), e); + return null; + } + } + /** * Parse the result from the function invocation into a list of scores. * @@ -81,7 +157,7 @@ private List parseScoreResult(Object result) { // Handle a single number if (result instanceof Number number) { - return List.of(new Score(scorerName, number.doubleValue())); + return List.of(new Score(getFunctionName(), number.doubleValue())); } // Handle a list of scores @@ -98,7 +174,7 @@ private List parseScoreResult(Object result) { Map scoreMap = (Map) map; // Extract name (use scorer name as fallback) - String name = scorerName; + String name = getFunctionName(); Object nameValue = scoreMap.get("name"); if (nameValue instanceof String s) { name = s; diff --git a/src/main/java/dev/braintrust/trace/BraintrustShutdownHook.java b/src/main/java/dev/braintrust/trace/BraintrustShutdownHook.java new file mode 100644 index 0000000..a6f1991 --- /dev/null +++ b/src/main/java/dev/braintrust/trace/BraintrustShutdownHook.java @@ -0,0 +1,31 @@ +package dev.braintrust.trace; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +class BraintrustShutdownHook { + private record OrderedTarget(int order, Runnable target) {} + + private static final List shutdownTargets = new CopyOnWriteArrayList<>(); + + static { + Runtime.getRuntime() + .addShutdownHook( + new Thread( + () -> { + List targets = new ArrayList<>(shutdownTargets); + targets.sort(Comparator.comparingInt(OrderedTarget::order)); + targets.forEach(t -> t.target().run()); + })); + } + + public static void addShutdownHook(Runnable target) { + addShutdownHook(0, target); + } + + public static void addShutdownHook(int order, Runnable target) { + shutdownTargets.add(new OrderedTarget(order, target)); + } +} diff --git a/src/main/java/dev/braintrust/trace/BraintrustSpanExporter.java b/src/main/java/dev/braintrust/trace/BraintrustSpanExporter.java index e90d3a5..6eff625 100644 --- a/src/main/java/dev/braintrust/trace/BraintrustSpanExporter.java +++ b/src/main/java/dev/braintrust/trace/BraintrustSpanExporter.java @@ -88,29 +88,23 @@ private CompletableResultCode exportWithParent(String parent, List spa return exporterBuilder.build(); }); - if (config.exportSpansInMemoryForUnitTest()) { - // unit test harness hooks up an in-memory exporter so we don't need to do anything - // here - return CompletableResultCode.ofSuccess(); - } else { - var result = exporter.export(spans); - // NOTE: whenComplete mutates the original object. does not copy. - return result.whenComplete( - () -> { - if (result.isSuccess()) { - log.debug( - "Successfully exported {} spans with x-bt-parent: {}", - spans.size(), - parent); - } else { - log.warn( - "Failed to export {} spans to endpoint {}", - spans.size(), - tracesEndpoint, - result.getFailureThrowable()); - } - }); - } + var result = exporter.export(spans); + // NOTE: whenComplete mutates the original object. does not copy. + return result.whenComplete( + () -> { + if (result.isSuccess()) { + log.debug( + "Successfully exported {} spans with x-bt-parent: {}", + spans.size(), + parent); + } else { + log.warn( + "Failed to export {} spans to endpoint {}", + spans.size(), + tracesEndpoint, + result.getFailureThrowable()); + } + }); } catch (Exception e) { log.error("Failed to export spans", e); return CompletableResultCode.ofFailure(); diff --git a/src/main/java/dev/braintrust/trace/BraintrustTracing.java b/src/main/java/dev/braintrust/trace/BraintrustTracing.java index f6d7eab..3737aaf 100644 --- a/src/main/java/dev/braintrust/trace/BraintrustTracing.java +++ b/src/main/java/dev/braintrust/trace/BraintrustTracing.java @@ -130,30 +130,20 @@ public static void enable( // but it's included in the method signature so we can do so in the future without // introducing a breaking change - Runtime.getRuntime() - .addShutdownHook( - new Thread( - () -> { - log.debug("Shutting down. Force-Flushing all otel data."); - var result = - CompletableResultCode.ofAll( - // run all flushes in parallel. Should (rarely) - // block for approx 10 seconds max - Stream.of( - spanProcessor.shutdown(), - logProcessor.shutdown()) - .map( - operation -> - operation.join( - 10, - TimeUnit - .SECONDS)) - .toList()); - log.debug( - "otel shutdown complete. Flush done: %s, Flush successful: %s" - .formatted( - result.isDone(), result.isSuccess())); - })); + BraintrustShutdownHook.addShutdownHook( + () -> { + log.debug("Shutting down. Force-Flushing all otel data."); + var result = + CompletableResultCode.ofAll( + // run all flushes in parallel. Should (rarely) + // block for approx 10 seconds max + Stream.of(spanProcessor.shutdown(), logProcessor.shutdown()) + .map(operation -> operation.join(10, TimeUnit.SECONDS)) + .toList()); + log.debug( + "otel shutdown complete. Flush done: %s, Flush successful: %s" + .formatted(result.isDone(), result.isSuccess())); + }); } /** Gets a tracer with Braintrust instrumentation scope. */ diff --git a/src/main/java/dev/braintrust/trace/SpanComponents.java b/src/main/java/dev/braintrust/trace/SpanComponents.java new file mode 100644 index 0000000..7fecf84 --- /dev/null +++ b/src/main/java/dev/braintrust/trace/SpanComponents.java @@ -0,0 +1,65 @@ +package dev.braintrust.trace; + +import dev.braintrust.BraintrustUtils; +import java.util.LinkedHashMap; +import java.util.Map; +import javax.annotation.Nullable; + +/** + * Represents span components for distributed tracing in object format. + * + *

This is used to pass parent span context when invoking remote functions, enabling the remote + * function's spans to appear as children of the caller's span in the Braintrust UI. + */ +public record SpanComponents(BraintrustUtils.Parent parent, @Nullable RowIds rowIds) { + /** + * braintrust-native SDKs have three IDs. Object id (braintrust db identifier), root span id, + * and span id + * + *

Otel SDKs only have root span id and span id, so we send a special string to the backend + * to signal to trace propagation logic that this trace came from an otel trace. + */ + private static final String BRAINTRUST_OTEL_OBJECT_ID = "otel"; + + /** + * Row IDs for linking spans within a trace. + * + * @param spanId The OTEL span ID (16 hex characters) + * @param rootSpanId The OTEL trace ID (32 hex characters) + */ + public record RowIds(String spanId, String rootSpanId) { + + /** Convert to a Map for JSON serialization. */ + public Map toMap() { + var map = new LinkedHashMap(); + map.put("id", BRAINTRUST_OTEL_OBJECT_ID); + map.put("span_id", spanId); + map.put("root_span_id", rootSpanId); + return map; + } + } + + /** + * Convert to a Map for JSON serialization. + * + *

The resulting map matches the InvokeParent object format expected by the API. + */ + public Map toMap() { + var map = new LinkedHashMap(); + map.put("object_type", spanComponentsObjectType()); + map.put("object_id", parent.id()); + if (rowIds != null) { + map.put("row_ids", rowIds.toMap()); + } + return map; + } + + private String spanComponentsObjectType() { + return switch (parent.type()) { + case "experiment_id" -> "experiment"; + case "playground_id" -> "playground_logs"; + case "project_id" -> "project_logs"; + default -> throw new RuntimeException("unknown parent type: " + parent.type()); + }; + } +} diff --git a/src/test/java/dev/braintrust/TestHarness.java b/src/test/java/dev/braintrust/TestHarness.java index 613363c..f1096d0 100644 --- a/src/test/java/dev/braintrust/TestHarness.java +++ b/src/test/java/dev/braintrust/TestHarness.java @@ -4,7 +4,7 @@ import dev.braintrust.api.BraintrustApiClient; import dev.braintrust.config.BraintrustConfig; -import dev.braintrust.prompt.BraintrustPromptLoader; +import dev.braintrust.trace.UnitTestShutdownHook; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator; import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; @@ -45,24 +45,29 @@ public class TestHarness { "https://api.braintrust.dev", "braintrust"), apiKeysToNeverRecord); vcr.start(); - Runtime.getRuntime().addShutdownHook(new Thread(vcr::stop)); + UnitTestShutdownHook.addShutdownHook(1, vcr::stop); } public static TestHarness setup() { - return setup(createTestConfig()); - } - - public static synchronized TestHarness setup(BraintrustConfig config) { + var configBuilder = + BraintrustConfig.builder() + .apiUrl(vcr.getUrlForTargetBase("https://api.braintrust.dev")) + .defaultProjectName(defaultProjectName()); + if (vcr.getMode() == VCR.VcrMode.REPLAY) { + // tolerate missing api key in replay mode + configBuilder.apiKey( + getEnv( + "BRAINTRUST_API_KEY", + "sk-000000000000000000000000000000000000000000000000")); + } + return setup(configBuilder.build()); + } + + private static synchronized TestHarness setup(BraintrustConfig config) { GlobalOpenTelemetry.resetForTest(); Braintrust.resetForTest(); - var apiClient = createApiClient(); - Braintrust braintrust = - Braintrust.set( - new Braintrust( - config, - createApiClient(), - BraintrustPromptLoader.of(config, apiClient))); + var braintrust = Braintrust.of(config); var harness = new TestHarness(braintrust); INSTANCE.set(harness); GlobalOpenTelemetry.set(harness.openTelemetry()); @@ -146,11 +151,11 @@ public String googleApiKey() { } public String braintrustApiBaseUrl() { - return vcr.getUrlForTargetBase("https://api.braintrust.dev"); + return braintrust.config().apiUrl(); } public String braintrustApiKey() { - return getEnv("BRAINTRUST_API_KEY", "test-key"); + return braintrust.config().apiKey(); } /** flush all pending spans and return all spans which have been exported so far */ @@ -191,14 +196,8 @@ private static BraintrustApiClient.InMemoryImpl createApiClient() { return new dev.braintrust.api.BraintrustApiClient.InMemoryImpl(orgAndProjectInfo); } - public static BraintrustConfig createTestConfig() { - return BraintrustConfig.of( - "BRAINTRUST_API_KEY", "foobar", - "BRAINTRUST_JAVA_EXPORT_SPANS_IN_MEMORY_FOR_UNIT_TEST", "true", - // NOTE: testhost is not real, just a placeholder value - "BRAINTRUST_API_URL", "https://testhost:8000", - "BRAINTRUST_APP_URL", "https://testhost:3000", - "BRAINTRUST_DEFAULT_PROJECT_NAME", defaultProjectName()); + public static VCR.VcrMode getVcrMode() { + return vcr.getMode(); } private static String getEnv(String envarName, String defaultValue) { diff --git a/src/test/java/dev/braintrust/VCR.java b/src/test/java/dev/braintrust/VCR.java index bb43eab..0cf6f88 100644 --- a/src/test/java/dev/braintrust/VCR.java +++ b/src/test/java/dev/braintrust/VCR.java @@ -1,7 +1,11 @@ package dev.braintrust; +import static com.github.tomakehurst.wiremock.client.WireMock.*; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.recording.RecordSpecBuilder; import java.io.IOException; @@ -13,6 +17,7 @@ import java.util.Map; import java.util.stream.Stream; import javax.annotation.concurrent.ThreadSafe; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; /** VCR (Video Cassette Recorder) for recording and replaying HTTP interactions. */ @@ -31,7 +36,7 @@ public enum VcrMode { private static final String CASSETTES_ROOT = "src/test/resources/cassettes/"; private final Map proxyMap; - private final VcrMode mode; + @Getter private final VcrMode mode; private final Map targetUrlToMappingsDir; private final List textToNeverRecord; private boolean recordingStarted = false; @@ -159,10 +164,12 @@ private void startRecording(String targetBaseUrl) { // .captureHeader("Authorization", true) .extractTextBodiesOver(0) // Always extract bodies .makeStubsPersistent(true) // Save to disk - // Use JSON matching: - // - ignoreArrayOrder=true - // - ignoreExtraElements=false - .matchRequestBodyWithEqualToJson(true, false) + // Auto-detect body matching based on Content-Type: + // - JSON (application/json) -> equalToJson with ignoreArrayOrder=true, + // ignoreExtraElements=false + // - XML -> equalToXml + // - Binary (application/x-protobuf, etc.) -> equalTo (binary matching) + .chooseBodyMatchTypeAutomatically(true, false, false) // Remove API keys from login endpoint recordings, then check for forbidden // text .transformers( @@ -211,35 +218,70 @@ private void loadAndCreateProgrammaticStubs() { + e.getMessage()); } } + + // Add catch-all stubs for dynamic requests. + // These requests contain timestamps and dynamic data that change between runs. + WireMockServer braintrustWireMock = proxyMap.get("https://api.braintrust.dev"); + if (braintrustWireMock != null) { + // OTLP trace exports - return 200 OK. Actual span content is validated via + // UnitTestSpanExporter. + braintrustWireMock.stubFor( + post(urlEqualTo("/otel/v1/traces")) + .atPriority(Integer.MAX_VALUE) // lowest priority, fallback only + .willReturn(aResponse().withStatus(200))); + log.info("Added catch-all stub for OTLP trace exports"); + } } private void createProgrammaticStubFromMapping( Path mappingPath, String mappingsDir, WireMockServer wireMock) throws Exception { String json = Files.readString(mappingPath); - com.fasterxml.jackson.databind.ObjectMapper mapper = - new com.fasterxml.jackson.databind.ObjectMapper(); - com.fasterxml.jackson.databind.JsonNode mapping = mapper.readTree(json); + ObjectMapper mapper = new ObjectMapper(); + JsonNode mapping = mapper.readTree(json); + + // Extract request matching criteria + String url = mapping.at("/request/url").asText(); + String method = mapping.at("/request/method").asText(); + + // Extract request body pattern for matching + JsonNode bodyPatterns = mapping.at("/request/bodyPatterns"); // Check if this is an SSE response - com.fasterxml.jackson.databind.JsonNode contentType = - mapping.at("/response/headers/Content-Type"); + JsonNode contentType = mapping.at("/response/headers/Content-Type"); boolean isSse = contentType.isTextual() && contentType.asText().contains("text/event-stream"); - if (!isSse) { - return; // Let WireMock handle non-SSE responses normally + // Check if this is a function invoke request with dynamic OTEL parent info + // Only handle invoke requests that have parent.row_ids (which contains dynamic trace IDs) + boolean isFunctionInvokeWithParent = false; + if (url.matches("/v1/function/.*/invoke") + && bodyPatterns.isArray() + && !bodyPatterns.isEmpty()) { + JsonNode firstPattern = bodyPatterns.get(0); + if (firstPattern.has("equalToJson")) { + String bodyJson = firstPattern.get("equalToJson").asText(); + // Only create programmatic stub if body contains parent.row_ids + isFunctionInvokeWithParent = bodyJson.contains("\"row_ids\""); + } } - log.info("Creating programmatic stub for SSE response: " + mappingPath.getFileName()); + if (!isSse && !isFunctionInvokeWithParent) { + return; // Let WireMock handle other responses normally + } - // Extract request matching criteria - String url = mapping.at("/request/url").asText(); - String method = mapping.at("/request/method").asText(); + if (isSse) { + log.info("Creating programmatic stub for SSE response: " + mappingPath.getFileName()); + } else { + log.info( + "Creating programmatic stub for function invoke with parent: " + + mappingPath.getFileName()); + } - // Extract request body pattern for matching - com.fasterxml.jackson.databind.JsonNode bodyPatterns = mapping.at("/request/bodyPatterns"); + // Extract response + int status = mapping.at("/response/status").asInt(200); + String responseContentType = + contentType.isTextual() ? contentType.asText() : "application/json"; - // Extract response body String body; if (mapping.at("/response/body").isTextual()) { body = mapping.at("/response/body").asText(); @@ -251,16 +293,22 @@ private void createProgrammaticStubFromMapping( return; } - // Create programmatic stub (like BraintrustOpenAITest does) + // Create programmatic stub com.github.tomakehurst.wiremock.client.MappingBuilder stub = com.github.tomakehurst.wiremock.client.WireMock.request( method, com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo(url)); // Add body pattern matching if present if (bodyPatterns.isArray() && !bodyPatterns.isEmpty()) { - com.fasterxml.jackson.databind.JsonNode firstPattern = bodyPatterns.get(0); + JsonNode firstPattern = bodyPatterns.get(0); if (firstPattern.has("equalToJson")) { String expectedJson = firstPattern.get("equalToJson").asText(); + + // For function invoke requests with parent, remove dynamic OTEL trace IDs + if (isFunctionInvokeWithParent) { + expectedJson = removeDynamicFieldsFromJson(expectedJson, mapper); + } + stub.withRequestBody( com.github.tomakehurst.wiremock.client.WireMock.equalToJson( expectedJson, true, true)); @@ -269,14 +317,44 @@ private void createProgrammaticStubFromMapping( com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder response = com.github.tomakehurst.wiremock.client.WireMock.aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/event-stream") + .withStatus(status) + .withHeader("Content-Type", responseContentType) .withBody(body); // Use instance method wireMock.stubFor(stub.willReturn(response)); } + /** + * Remove dynamic fields from JSON that change between test runs. Specifically removes + * parent.row_ids.span_id and parent.row_ids.root_span_id which are generated by OTEL. + */ + private String removeDynamicFieldsFromJson(String json, ObjectMapper mapper) { + try { + JsonNode root = mapper.readTree(json); + if (root.isObject()) { + ObjectNode objNode = (ObjectNode) root; + + // Check if parent.row_ids exists and remove the dynamic fields + JsonNode parent = objNode.get("parent"); + if (parent != null && parent.isObject()) { + ObjectNode parentObj = (ObjectNode) parent; + JsonNode rowIds = parentObj.get("row_ids"); + if (rowIds != null && rowIds.isObject()) { + ObjectNode rowIdsObj = (ObjectNode) rowIds; + rowIdsObj.remove("span_id"); + rowIdsObj.remove("root_span_id"); + log.debug("Removed dynamic OTEL trace IDs from request body matching"); + } + } + return mapper.writeValueAsString(objNode); + } + } catch (Exception e) { + log.warn("Failed to remove dynamic fields from JSON: {}", e.getMessage()); + } + return json; + } + private void stopRecording() { if (mode == VcrMode.RECORD && recordingStarted) { for (Map.Entry entry : proxyMap.entrySet()) { diff --git a/src/test/java/dev/braintrust/devserver/DevserverTest.java b/src/test/java/dev/braintrust/devserver/DevserverTest.java index 3490534..fcad73b 100644 --- a/src/test/java/dev/braintrust/devserver/DevserverTest.java +++ b/src/test/java/dev/braintrust/devserver/DevserverTest.java @@ -4,9 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import dev.braintrust.BraintrustUtils; import dev.braintrust.TestHarness; -import dev.braintrust.TestUtils; -import dev.braintrust.config.BraintrustConfig; import dev.braintrust.eval.Scorer; import io.opentelemetry.sdk.trace.data.SpanData; import java.io.BufferedReader; @@ -20,16 +19,24 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; +@Slf4j class DevserverTest { private static Devserver server; private static Thread serverThread; private static TestHarness testHarness; - private static final int TEST_PORT = TestUtils.getRandomOpenPort(); + // private static final int TEST_PORT = TestUtils.getRandomOpenPort(); + private static final int TEST_PORT = 8301; private static final String TEST_URL = "http://localhost:" + TEST_PORT; private static final ObjectMapper JSON_MAPPER = new ObjectMapper(); + private static final String REMOTE_EVAL_NAME = "food-type-classifier"; + private static final BraintrustUtils.Parent PLAYGROUND_PARENT = + new BraintrustUtils.Parent("playground_id", "ceea7422-3507-4d1c-a5f7-7acf41d9fac2"); + // Remote scorer from java-unit-test project (returns 1.0 for exact match, 0.0 otherwise) private static final String REMOTE_SCORER_FUNCTION_ID = "efa5f9c3-6ece-4726-a9d6-4ba792980b3f"; private static final String REMOTE_SCORER_NAME = "typescript_exact_match"; @@ -39,18 +46,10 @@ static void setUp() throws Exception { // Set up test harness with VCR (records/replays HTTP interactions) testHarness = TestHarness.setup(); - // Create config pointing to VCR-proxied Braintrust API - BraintrustConfig testConfig = - BraintrustConfig.of( - "BRAINTRUST_API_KEY", testHarness.braintrustApiKey(), - "BRAINTRUST_API_URL", testHarness.braintrustApiBaseUrl(), - "BRAINTRUST_DEFAULT_PROJECT_NAME", TestHarness.defaultProjectName(), - "BRAINTRUST_JAVA_EXPORT_SPANS_IN_MEMORY_FOR_UNIT_TEST", "true"); - // Create a shared eval for all tests RemoteEval testEval = RemoteEval.builder() - .name("food-type-classifier") + .name(REMOTE_EVAL_NAME) .taskFunction( input -> { // Create a span inside the task to test baggage propagation @@ -71,14 +70,10 @@ static void setUp() throws Exception { server = Devserver.builder() - .config(testConfig) + .config(testHarness.braintrust().config()) .registerEval(testEval) .host("localhost") .port(TEST_PORT) - .braintrustConfigBuilderHook( - configBuilder -> { - configBuilder.exportSpansInMemoryForUnitTest(true); - }) .build(); // Start server in background thread @@ -88,7 +83,7 @@ static void setUp() throws Exception { try { server.start(); } catch (Exception e) { - e.printStackTrace(); + log.error("unable to start dev server", e); } }); serverThread.start(); @@ -98,12 +93,16 @@ static void setUp() throws Exception { } @AfterAll + @SneakyThrows static void tearDown() { if (server != null) { server.stop(); } if (serverThread != null) { - serverThread.interrupt(); + serverThread.join(30_000); + if (serverThread.isAlive()) { + serverThread.interrupt(); + } } } @@ -125,7 +124,7 @@ void testHealthCheck() throws Exception { void testStreamingEval() throws Exception { // Create eval request with inline data using EvalRequest types EvalRequest evalRequest = new EvalRequest(); - evalRequest.setName("food-type-classifier"); + evalRequest.setName(REMOTE_EVAL_NAME); evalRequest.setStream(true); // Create inline data @@ -142,11 +141,10 @@ void testStreamingEval() throws Exception { dataSpec.setData(List.of(case1, case2)); evalRequest.setData(dataSpec); - // Set parent with playground_id and generation Map parentSpec = Map.of( - "object_type", "experiment", - "object_id", "test-playground-id-123", + "object_type", PLAYGROUND_PARENT.type(), + "object_id", PLAYGROUND_PARENT.id(), "propagated_event", Map.of("span_attributes", Map.of("generation", "test-gen-1"))); evalRequest.setParent(parentSpec); @@ -226,7 +224,7 @@ void testStreamingEval() throws Exception { // Assert expected fields in progress event assertTrue(progressData.has("id"), "Progress event should have id"); assertEquals("task", progressData.get("object_type").asText()); - assertEquals("food-type-classifier", progressData.get("name").asText()); + assertEquals(REMOTE_EVAL_NAME, progressData.get("name").asText()); assertEquals("code", progressData.get("format").asText()); assertEquals("completion", progressData.get("output_type").asText()); assertEquals("json_delta", progressData.get("event").asText()); @@ -242,7 +240,7 @@ void testStreamingEval() throws Exception { assertEquals(TestHarness.defaultProjectName(), summaryData.get("projectName").asText()); assertTrue(summaryData.has("projectId")); - assertEquals("food-type-classifier", summaryData.get("experimentName").asText()); + assertEquals(REMOTE_EVAL_NAME, summaryData.get("experimentName").asText()); // Verify scores in summary assertTrue(summaryData.has("scores")); @@ -294,10 +292,10 @@ void testStreamingEval() throws Exception { .get( io.opentelemetry.api.common.AttributeKey.stringKey( "braintrust.parent")); - assertNotNull(parent, "Eval span should have parent attribute"); - assertTrue( - parent.contains("playground_id:test-playground-id-123"), - "Parent should contain playground_id"); + assertEquals( + PLAYGROUND_PARENT.toParentValue(), + parent, + "Eval span should have parent attribute"); String spanAttrsJson = evalSpan.getAttributes() @@ -341,10 +339,7 @@ void testStreamingEval() throws Exception { .get( io.opentelemetry.api.common.AttributeKey.stringKey( "braintrust.parent")); - assertNotNull(parent, "Task span should have parent attribute"); - assertTrue( - parent.contains("playground_id:test-playground-id-123"), - "Parent should contain playground_id"); + assertEquals(PLAYGROUND_PARENT.toParentValue(), parent); String spanAttrsJson = taskSpan.getAttributes() @@ -382,10 +377,7 @@ void testStreamingEval() throws Exception { .get( io.opentelemetry.api.common.AttributeKey.stringKey( "braintrust.parent")); - assertNotNull(parent, "Score span should have parent attribute"); - assertTrue( - parent.contains("playground_id:test-playground-id-123"), - "Parent should contain playground_id"); + assertEquals(PLAYGROUND_PARENT.toParentValue(), parent); // Verify braintrust.span_attributes String spanAttrsJson = @@ -402,8 +394,10 @@ void testStreamingEval() throws Exception { // Scorer name should be either simple_scorer or the remote scorer String scorerName = spanAttrs.get("name").asText(); assertTrue( - scorerName.equals("simple_scorer") || scorerName.equals(REMOTE_SCORER_NAME), - "Score span name should be simple_scorer or " + REMOTE_SCORER_NAME); + scorerName.contains("simple_scorer") + || scorerName.contains(REMOTE_SCORER_NAME.replaceAll("_", "")), + "Score span name should be simple_scorer or %s -- got: %s" + .formatted(REMOTE_EVAL_NAME, scorerName)); // Verify braintrust.output_json contains scores String outputJson = @@ -444,11 +438,7 @@ void testStreamingEval() throws Exception { .get( io.opentelemetry.api.common.AttributeKey.stringKey( "braintrust.parent")); - assertNotNull( - parent, "Custom span should have braintrust.parent attribute from baggage"); - assertTrue( - parent.contains("playground_id:test-playground-id-123"), - "Custom span parent should contain playground_id from baggage propagation"); + assertEquals(PLAYGROUND_PARENT.toParentValue(), parent); } } @@ -516,9 +506,9 @@ void testListEndpoint() throws Exception { JsonNode root = JSON_MAPPER.readTree(response.body()); // Should have one evaluator - assertTrue(root.has("food-type-classifier")); + assertTrue(root.has(REMOTE_EVAL_NAME)); - JsonNode eval = root.get("food-type-classifier"); + JsonNode eval = root.get(REMOTE_EVAL_NAME); // Check scores assertTrue(eval.has("scores")); diff --git a/src/test/java/dev/braintrust/eval/EvalTest.java b/src/test/java/dev/braintrust/eval/EvalTest.java index fdeef97..3e2abd1 100644 --- a/src/test/java/dev/braintrust/eval/EvalTest.java +++ b/src/test/java/dev/braintrust/eval/EvalTest.java @@ -98,8 +98,11 @@ public void evalOtelTraceWithProperAttributes() { } } assertEquals(2, numRootSpans.get(), "each case should make a root span"); + // 1 root span + 1 task span + 2 scorer spans (one per scorer) assertEquals( - numRootSpans.get() * 3, spans.size(), "each eval case should make three spans"); + numRootSpans.get() * 4, + spans.size(), + "each eval case should make four spans (one per scorer)"); } boolean isFruitOrVegetable(String str) { diff --git a/src/test/java/dev/braintrust/eval/ScorerBrainstoreImplTest.java b/src/test/java/dev/braintrust/eval/ScorerBrainstoreImplTest.java index ffbc35c..2bb4dca 100644 --- a/src/test/java/dev/braintrust/eval/ScorerBrainstoreImplTest.java +++ b/src/test/java/dev/braintrust/eval/ScorerBrainstoreImplTest.java @@ -3,11 +3,18 @@ import static org.junit.jupiter.api.Assertions.*; import dev.braintrust.TestHarness; +import dev.braintrust.VCR; import dev.braintrust.api.BraintrustApiClient; -import dev.braintrust.config.BraintrustConfig; +import dev.braintrust.trace.BraintrustContext; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.context.Context; +import java.util.List; +import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +@Slf4j public class ScorerBrainstoreImplTest { // NOTE: the remote scorers under test are standard boilerplate // TODO: test is VCR'd so it's fine, but would be nice to have logic to (re)create the score @@ -25,14 +32,8 @@ public class ScorerBrainstoreImplTest { @BeforeEach void beforeEach() { testHarness = TestHarness.setup(); - - var config = - BraintrustConfig.builder() - .apiKey(testHarness.braintrustApiKey()) - .apiUrl(testHarness.braintrustApiBaseUrl()) - .build(); - - apiClient = BraintrustApiClient.of(config); + apiClient = + testHarness.braintrust().apiClient(); // TODO -- do we need a separate var for this? } @Test @@ -132,4 +133,92 @@ void testLlmJudgeScorerReturnsScoreFromMetadataChoice() { scores.get(0).name(), "Scorer name should come from the LLM judge response"); } + + @Test + void testDistributedTracingWithRemoteScorer() throws InterruptedException { + String projectName = testHarness.braintrust().config().defaultProjectName().orElseThrow(); + + Scorer scorer = + Scorer.fetchFromBraintrust(apiClient, projectName, LLM_JUDGE_SLUG, null); + assertNotNull(scorer); + + // Get tracer from test harness + Tracer tracer = testHarness.openTelemetry().getTracer("distributed-trace-test"); + Span parentSpan = tracer.spanBuilder("test-distributed-trace-parent").startSpan(); + Context ctx = + BraintrustContext.setParentInBaggage( + Context.root().with(parentSpan), + "project_id", + TestHarness.defaultProjectId()); + try (var scope = ctx.makeCurrent()) { + // Call the scorer - it should pick up the OTEL context and baggage + // and pass parent info to the remote function + var datasetCase = DatasetCase.of("test input", "hello world"); + var taskResult = new TaskResult<>("hello world", datasetCase); + + var scores = scorer.score(taskResult); + + assertFalse(scores.isEmpty(), "Expected scores but got empty list"); + } finally { + parentSpan.end(); + } + + var spans = testHarness.awaitExportedSpans(); + assertEquals(1, spans.size()); + var rootSpan = spans.get(0); + var traceId = rootSpan.getTraceId(); + var spanId = rootSpan.getSpanId(); + + // Step 2: Query Braintrust for spans with our root_span_id to verify tracing + if (TestHarness.getVcrMode() == VCR.VcrMode.REPLAY) { + // TODO -- come up with a long-term solution for querying objects with dynamic IDs + log.info( + "Skipping distributed trace verification in VCR replay mode (trace IDs are" + + " dynamic)"); + return; + } + + // The OTEL traceId (32 hex chars) maps to Braintrust root_span_id + String projectId = TestHarness.defaultProjectId(); + + // Poll for eventual consistency - spans may take a moment to be indexed + BraintrustApiClient.BtqlQueryResponse response = null; + int maxAttempts = 30; + int attemptDelayMs = 2000; + + // First, query by root_span_id to find all spans in our trace + String rootSpanQuery = + "select: span_id, span_parents, root_span_id, name | from: project_logs('%s') | filter: root_span_id = '%s'" + .formatted(projectId, traceId); + + for (int attempt = 1; attempt <= maxAttempts; attempt++) { + response = apiClient.btqlQuery(rootSpanQuery); + if (response != null && response.data() != null && !response.data().isEmpty()) { + break; + } + if (attempt < maxAttempts) { + Thread.sleep(attemptDelayMs); + } + } + + assertNotNull(response, "BTQL query response should not be null"); + assertNotNull(response.data(), "BTQL query data should not be null"); + + // Now check if any span has our spanId in its span_parents + boolean foundChildSpan = + response.data().stream() + .anyMatch( + row -> { + Object spanParents = row.get("span_parents"); + if (spanParents instanceof List list) { + return list.contains(spanId); + } + return false; + }); + + assertTrue( + foundChildSpan, + "Expected to find a span with parent spanId '%s' in trace '%s'. Found %d spans total." + .formatted(spanId, traceId, response.data().size())); + } } diff --git a/src/test/java/dev/braintrust/trace/UnitTestShutdownHook.java b/src/test/java/dev/braintrust/trace/UnitTestShutdownHook.java new file mode 100644 index 0000000..79f5950 --- /dev/null +++ b/src/test/java/dev/braintrust/trace/UnitTestShutdownHook.java @@ -0,0 +1,11 @@ +package dev.braintrust.trace; + +public class UnitTestShutdownHook { + public static void addShutdownHook(Runnable target) { + addShutdownHook(0, target); + } + + public static void addShutdownHook(int order, Runnable target) { + BraintrustShutdownHook.addShutdownHook(order, target); + } +} diff --git a/src/test/resources/cassettes/anthropic/__files/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.txt b/src/test/resources/cassettes/anthropic/__files/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.txt similarity index 76% rename from src/test/resources/cassettes/anthropic/__files/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.txt rename to src/test/resources/cassettes/anthropic/__files/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.txt index 63ec779..6fd822b 100644 --- a/src/test/resources/cassettes/anthropic/__files/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.txt +++ b/src/test/resources/cassettes/anthropic/__files/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.txt @@ -1,20 +1,20 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_012tS1cYEUH4trpwrzTXPaif","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard"}} } +data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01VCp1RHSod6yjMZgMhvo63L","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard","inference_geo":"not_available"}} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Paris."}} +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Paris."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0} event: message_delta data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } diff --git a/src/test/resources/cassettes/anthropic/__files/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json b/src/test/resources/cassettes/anthropic/__files/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json similarity index 54% rename from src/test/resources/cassettes/anthropic/__files/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json rename to src/test/resources/cassettes/anthropic/__files/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json index f08a839..806febc 100644 --- a/src/test/resources/cassettes/anthropic/__files/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json +++ b/src/test/resources/cassettes/anthropic/__files/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json @@ -1 +1 @@ -{"model":"claude-3-5-haiku-20241022","id":"msg_012gishQVgVX9SbBiEo4dCp8","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard"}} \ No newline at end of file +{"model":"claude-3-5-haiku-20241022","id":"msg_01QZ2Kog1CjtsKvGZnAbYYSQ","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/src/test/resources/cassettes/anthropic/mappings/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.json b/src/test/resources/cassettes/anthropic/mappings/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.json similarity index 68% rename from src/test/resources/cassettes/anthropic/mappings/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.json rename to src/test/resources/cassettes/anthropic/mappings/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.json index f482886..42e8257 100644 --- a/src/test/resources/cassettes/anthropic/mappings/v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.json +++ b/src/test/resources/cassettes/anthropic/mappings/v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.json @@ -1,5 +1,5 @@ { - "id" : "8120a850-75ab-4fe2-8c4b-f0367beada3a", + "id" : "71f8c84f-b988-4c20-ab41-8e0f5e20325c", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -17,34 +17,35 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-8120a850-75ab-4fe2-8c4b-f0367beada3a.txt", + "bodyFileName" : "v1_messages-71f8c84f-b988-4c20-ab41-8e0f5e20325c.txt", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:12 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:11 GMT", "Content-Type" : "text/event-stream; charset=utf-8", "Cache-Control" : "no-cache", "anthropic-ratelimit-requests-limit" : "10000", "anthropic-ratelimit-requests-remaining" : "9999", - "anthropic-ratelimit-requests-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-requests-reset" : "2026-02-06T01:36:11Z", "anthropic-ratelimit-input-tokens-limit" : "5000000", "anthropic-ratelimit-input-tokens-remaining" : "5000000", - "anthropic-ratelimit-input-tokens-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-02-06T01:36:11Z", "anthropic-ratelimit-output-tokens-limit" : "1000000", "anthropic-ratelimit-output-tokens-remaining" : "1000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-02-06T01:36:11Z", "anthropic-ratelimit-tokens-limit" : "6000000", "anthropic-ratelimit-tokens-remaining" : "6000000", - "anthropic-ratelimit-tokens-reset" : "2026-01-23T05:36:11Z", - "request-id" : "req_011CXPmVFdRQeFhPG37DhYW6", + "anthropic-ratelimit-tokens-reset" : "2026-02-06T01:36:11Z", + "request-id" : "req_011CXqxWWdE6Kb91K1dfu7Zt", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", - "x-envoy-upstream-service-time" : "346", + "x-envoy-upstream-service-time" : "388", "cf-cache-status" : "DYNAMIC", "X-Robots-Tag" : "none", - "CF-RAY" : "9c24ee9a8aadec98-SEA" + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "CF-RAY" : "9c96ea441d1eba4e-SEA" } }, - "uuid" : "8120a850-75ab-4fe2-8c4b-f0367beada3a", + "uuid" : "71f8c84f-b988-4c20-ab41-8e0f5e20325c", "persistent" : true, "insertionIndex" : 2 } \ No newline at end of file diff --git a/src/test/resources/cassettes/anthropic/mappings/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json b/src/test/resources/cassettes/anthropic/mappings/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json similarity index 66% rename from src/test/resources/cassettes/anthropic/mappings/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json rename to src/test/resources/cassettes/anthropic/mappings/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json index 4f85bba..bfbc6e9 100644 --- a/src/test/resources/cassettes/anthropic/mappings/v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json +++ b/src/test/resources/cassettes/anthropic/mappings/v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json @@ -1,5 +1,5 @@ { - "id" : "10bd174c-61dd-42e0-b078-0f899387c789", + "id" : "850b9b3b-255f-4688-8cbc-b975114bb35d", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -17,33 +17,34 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-10bd174c-61dd-42e0-b078-0f899387c789.json", + "bodyFileName" : "v1_messages-850b9b3b-255f-4688-8cbc-b975114bb35d.json", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:11 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:09 GMT", "Content-Type" : "application/json", "anthropic-ratelimit-requests-limit" : "10000", "anthropic-ratelimit-requests-remaining" : "9999", - "anthropic-ratelimit-requests-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-requests-reset" : "2026-02-06T01:36:09Z", "anthropic-ratelimit-input-tokens-limit" : "5000000", "anthropic-ratelimit-input-tokens-remaining" : "5000000", - "anthropic-ratelimit-input-tokens-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-02-06T01:36:09Z", "anthropic-ratelimit-output-tokens-limit" : "1000000", "anthropic-ratelimit-output-tokens-remaining" : "1000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-01-23T05:36:11Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-02-06T01:36:09Z", "anthropic-ratelimit-tokens-limit" : "6000000", "anthropic-ratelimit-tokens-remaining" : "6000000", - "anthropic-ratelimit-tokens-reset" : "2026-01-23T05:36:11Z", - "X-Robots-Tag" : "none", - "request-id" : "req_011CXPmVCSBbJwY2Ysqo5QAg", + "anthropic-ratelimit-tokens-reset" : "2026-02-06T01:36:09Z", + "request-id" : "req_011CXqxWPQe5S6dmTtRm1aJT", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", - "x-envoy-upstream-service-time" : "455", + "x-envoy-upstream-service-time" : "526", "cf-cache-status" : "DYNAMIC", - "CF-RAY" : "9c24ee95dd89db33-SEA" + "X-Robots-Tag" : "none", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "CF-RAY" : "9c96ea399fda0fde-SEA" } }, - "uuid" : "10bd174c-61dd-42e0-b078-0f899387c789", + "uuid" : "850b9b3b-255f-4688-8cbc-b975114bb35d", "persistent" : true, "insertionIndex" : 1 } \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json rename to src/test/resources/cassettes/braintrust/__files/api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json rename to src/test/resources/cassettes/braintrust/__files/api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json new file mode 100644 index 0000000..9a18a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"braintrustdata.com","api_url":"https://staging-api.braintrust.dev","git_metadata":{"fields":["commit","branch","tag","author_name","author_email","commit_message","commit_time","dirty"],"collect":"some"},"is_universal_api":true,"proxy_url":"https://staging-api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json b/src/test/resources/cassettes/braintrust/__files/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json new file mode 100644 index 0000000..c8cff2a --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json @@ -0,0 +1 @@ +{"data":[{"name":"test-distributed-trace-parent","root_span_id":"1ac0a409fabeeef1bbee8c5b89d20f78","span_id":"f0d93b16e0263ec9","span_parents":null},{"name":"Chat Completion","root_span_id":"1ac0a409fabeeef1bbee8c5b89d20f78","span_id":"ef5c8119-972a-4c01-8727-44cb278b474a","span_parents":["a9fd53f3-852a-4045-96c7-c15549a36360"]},{"name":"close-enough-judge","root_span_id":"1ac0a409fabeeef1bbee8c5b89d20f78","span_id":"a9fd53f3-852a-4045-96c7-c15549a36360","span_parents":["f0d93b16e0263ec9"]}],"schema":{"type":"array","items":{"type":"object","properties":{"span_id":{"type":"string","description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing"},"span_parents":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"root_span_id":{"type":"string","description":"A unique identifier for the trace this project logs event belongs to"},"name":{"type":["string","null"],"description":"Name of the span, for display purposes only"}}}},"cursor":"aYVFg6mfAAA","realtime_state":{"type":"on","minimum_xact_id":null,"read_bytes":3983,"actual_xact_id":"1000196613370785822"},"freshness_state":{"last_processed_xact_id":"1000196613352696441","last_considered_xact_id":"1000196613370785822"}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json b/src/test/resources/cassettes/braintrust/__files/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json new file mode 100644 index 0000000..fe135f8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json @@ -0,0 +1 @@ +{"Code":"ForbiddenError","Message":"Missing read access to experiment id abc123-http-test, or the experiment does not exist [user_email=andrew@braintrustdata.com] [user_org=braintrustdata.com] [timestamp=1770341784.956]","InternalTraceId":"69854598000000007331b16d970969f8","Path":"/otel/v1/traces","Service":"api"} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json b/src/test/resources/cassettes/braintrust/__files/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json new file mode 100644 index 0000000..6ff09e5 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json @@ -0,0 +1 @@ +{"id":"2b74c6f0-cb9a-4ddd-a30e-97aaecfded98","project_id":"6ae68365-7620-4630-921b-bac416634fc8","name":"unit-test-eval","description":null,"created":"2026-02-04T18:34:20.768Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json b/src/test/resources/cassettes/braintrust/__files/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json new file mode 100644 index 0000000..46bbb7d --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json @@ -0,0 +1 @@ +{"id":"f8550f07-ddf5-40aa-94e9-cf158c04ae3f","project_id":"6ae68365-7620-4630-921b-bac416634fc8","name":"unit-test-eval-tags-metadata","description":null,"created":"2026-02-04T18:34:11.241Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json b/src/test/resources/cassettes/braintrust/__files/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json new file mode 100644 index 0000000..6ff09e5 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json @@ -0,0 +1 @@ +{"id":"2b74c6f0-cb9a-4ddd-a30e-97aaecfded98","project_id":"6ae68365-7620-4630-921b-bac416634fc8","name":"unit-test-eval","description":null,"created":"2026-02-04T18:34:20.768Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json b/src/test/resources/cassettes/braintrust/__files/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json new file mode 100644 index 0000000..565dc2c --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json @@ -0,0 +1 @@ +{"id":"37ac3f3f-00b9-4a5f-9977-faf1349ab881","project_id":"6ae68365-7620-4630-921b-bac416634fc8","name":"unit-test-eval-origin","description":null,"created":"2026-02-04T18:34:16.190Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json b/src/test/resources/cassettes/braintrust/__files/v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json rename to src/test/resources/cassettes/braintrust/__files/v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function-32c90375-557c-4ef8-9263-383a8386366a.json b/src/test/resources/cassettes/braintrust/__files/v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function-32c90375-557c-4ef8-9263-383a8386366a.json rename to src/test/resources/cassettes/braintrust/__files/v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json b/src/test/resources/cassettes/braintrust/__files/v1_function-9270516e-455e-4e54-a319-08763684b9e1.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json rename to src/test/resources/cassettes/braintrust/__files/v1_function-9270516e-455e-4e54-a319-08763684b9e1.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json b/src/test/resources/cassettes/braintrust/__files/v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json rename to src/test/resources/cassettes/braintrust/__files/v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json b/src/test/resources/cassettes/braintrust/__files/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json new file mode 100644 index 0000000..5dd6d39 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json @@ -0,0 +1 @@ +{"objects":[{"id":"5dd8a26d-3be8-4ecd-af5b-df2a6a592277","_xact_id":"1000196533616093054","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"close-enough-judge","slug":"close-enough-judge-d31b","description":null,"created":"2026-01-22T23:33:23.674Z","prompt_data":{"parser":{"type":"llm_classifier","use_cot":true,"choice_scores":{"":0}},"prompt":{"type":"chat","messages":[{"role":"system","content":"you are an LLM eval scorer. you will evaluate output compared to expected results and return a value between 0.0 and 1.0 (0 is worst 1 is best)"},{"role":"user","content":"how closely does my eval case output: `{{output}}` match the expected result of `{{expected}}`"}]},"options":{"model":"gpt-5-mini","params":{"use_cache":true,"temperature":0},"position":"0|hzzzzz:"}},"tags":null,"metadata":null,"function_type":"scorer","function_data":{"type":"prompt"},"origin":null,"function_schema":null}]} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json new file mode 100644 index 0000000..3e34ef8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json @@ -0,0 +1 @@ +{"id":"5dd8a26d-3be8-4ecd-af5b-df2a6a592277","_xact_id":"1000196533616093054","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"close-enough-judge","slug":"close-enough-judge-d31b","description":null,"created":"2026-01-22T23:33:23.674Z","prompt_data":{"parser":{"type":"llm_classifier","use_cot":true,"choice_scores":{"":0}},"prompt":{"type":"chat","messages":[{"role":"system","content":"you are an LLM eval scorer. you will evaluate output compared to expected results and return a value between 0.0 and 1.0 (0 is worst 1 is best)"},{"role":"user","content":"how closely does my eval case output: `{{output}}` match the expected result of `{{expected}}`"}]},"options":{"model":"gpt-5-mini","params":{"use_cache":true,"temperature":0},"position":"0|hzzzzz:"}},"tags":null,"metadata":null,"function_type":"scorer","function_data":{"type":"prompt"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json new file mode 100644 index 0000000..3e34ef8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json @@ -0,0 +1 @@ +{"id":"5dd8a26d-3be8-4ecd-af5b-df2a6a592277","_xact_id":"1000196533616093054","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"close-enough-judge","slug":"close-enough-judge-d31b","description":null,"created":"2026-01-22T23:33:23.674Z","prompt_data":{"parser":{"type":"llm_classifier","use_cot":true,"choice_scores":{"":0}},"prompt":{"type":"chat","messages":[{"role":"system","content":"you are an LLM eval scorer. you will evaluate output compared to expected results and return a value between 0.0 and 1.0 (0 is worst 1 is best)"},{"role":"user","content":"how closely does my eval case output: `{{output}}` match the expected result of `{{expected}}`"}]},"options":{"model":"gpt-5-mini","params":{"use_cache":true,"temperature":0},"position":"0|hzzzzz:"}},"tags":null,"metadata":null,"function_type":"scorer","function_data":{"type":"prompt"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json new file mode 100644 index 0000000..a813a1e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json @@ -0,0 +1 @@ +{"name":"close-enough-judge","score":null,"metadata":{"rationale":"1) Identify the expected result: the expected output is the numeral '4'.\n2) Identify the actual output: the model produced the word 'four'.\n3) Normalize both outputs for semantic comparison: convert spelled-out numbers to their numeric value (\"four\" -> 4) and interpret numerals as numbers (\"4\" -> 4).\n4) Compare normalized values: 4 == 4, so they are semantically identical.\n5) Consider common evaluation schemes: strict string match would mark them as different (score 0.0), while numeric/semantic normalization would treat them as equivalent (score 1.0). Given typical LLM evals that allow normalization of number formats, the correct score is 1.0.\n6) Provide final numeric score accordingly.","choice":"1.0"}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json deleted file mode 100644 index e35193e..0000000 --- a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"close-enough-judge","score":null,"metadata":{"rationale":"1) Identify expected: the expected result is the numeral '4', which represents the integer 4.\n2) Identify output: the candidate output is the word 'four', which is the English lexical representation of the same integer.\n3) Semantic comparison: 'four' and '4' denote the same value; under semantic or normalized numeric evaluation they are equivalent.\n4) Token/string exact-match consideration: as raw strings they differ ('four' != '4'), so under a strict exact-byte/string-match metric they would score 0.\n5) Typical evaluation practice: most evaluation for numeric answers either normalize number words and digits or compare numeric value; in that common case they match perfectly.\nConclusion: under a sensible normalization/numeric equivalence metric the match is perfect, so score 1.0; under strict raw string match it would be 0.0. I choose the normalized/numeric-equivalence interpretation.","choice":"1.0"}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json new file mode 100644 index 0000000..0de1a02 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json @@ -0,0 +1 @@ +{"name":"close-enough-judge","score":null,"metadata":{"rationale":"Step 1: Compare the two strings character-by-character.\nStep 2: Check casing: both are all lowercase.\nStep 3: Check spacing: both contain a single space between 'hello' and 'world', no leading/trailing spaces.\nStep 4: Check for punctuation/newlines: neither string contains punctuation or newlines.\nStep 5: Verify overall equality: all characters match in order, so the outputs are identical.\nConclusion: The output is an exact match to the expected result, warranting the highest possible score.","choice":"1.0"}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json new file mode 100644 index 0000000..5e488e8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json @@ -0,0 +1 @@ +{"id":"efa5f9c3-6ece-4726-a9d6-4ba792980b3f","_xact_id":"1000196534223020329","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"typescript_exact_match","slug":"typescriptexactmatch-9e44","description":null,"created":"2026-01-23T02:07:44.212Z","prompt_data":null,"tags":null,"metadata":null,"function_type":"scorer","function_data":{"data":{"code":"// Enter handler function that returns a numeric score between 0 and 1,\n// or null to skip scoring\nfunction handler({\n input,\n output,\n expected,\n metadata,\n}: {\n input: any;\n output: any;\n expected: any;\n metadata: Record;\n}): number | null {\n if (expected === null) return null;\n return output === expected ? 1 : 0;\n}","type":"inline","runtime_context":{"runtime":"node","version":"22"}},"type":"code"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json new file mode 100644 index 0000000..5e488e8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json @@ -0,0 +1 @@ +{"id":"efa5f9c3-6ece-4726-a9d6-4ba792980b3f","_xact_id":"1000196534223020329","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"typescript_exact_match","slug":"typescriptexactmatch-9e44","description":null,"created":"2026-01-23T02:07:44.212Z","prompt_data":null,"tags":null,"metadata":null,"function_type":"scorer","function_data":{"data":{"code":"// Enter handler function that returns a numeric score between 0 and 1,\n// or null to skip scoring\nfunction handler({\n input,\n output,\n expected,\n metadata,\n}: {\n input: any;\n output: any;\n expected: any;\n metadata: Record;\n}): number | null {\n if (expected === null) return null;\n return output === expected ? 1 : 0;\n}","type":"inline","runtime_context":{"runtime":"node","version":"22"}},"type":"code"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json new file mode 100644 index 0000000..5e488e8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json @@ -0,0 +1 @@ +{"id":"efa5f9c3-6ece-4726-a9d6-4ba792980b3f","_xact_id":"1000196534223020329","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"typescript_exact_match","slug":"typescriptexactmatch-9e44","description":null,"created":"2026-01-23T02:07:44.212Z","prompt_data":null,"tags":null,"metadata":null,"function_type":"scorer","function_data":{"data":{"code":"// Enter handler function that returns a numeric score between 0 and 1,\n// or null to skip scoring\nfunction handler({\n input,\n output,\n expected,\n metadata,\n}: {\n input: any;\n output: any;\n expected: any;\n metadata: Record;\n}): number | null {\n if (expected === null) return null;\n return output === expected ? 1 : 0;\n}","type":"inline","runtime_context":{"runtime":"node","version":"22"}},"type":"code"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json new file mode 100644 index 0000000..5e488e8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json @@ -0,0 +1 @@ +{"id":"efa5f9c3-6ece-4726-a9d6-4ba792980b3f","_xact_id":"1000196534223020329","project_id":"6ae68365-7620-4630-921b-bac416634fc8","log_id":"p","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"typescript_exact_match","slug":"typescriptexactmatch-9e44","description":null,"created":"2026-01-23T02:07:44.212Z","prompt_data":null,"tags":null,"metadata":null,"function_type":"scorer","function_data":{"data":{"code":"// Enter handler function that returns a numeric score between 0 and 1,\n// or null to skip scoring\nfunction handler({\n input,\n output,\n expected,\n metadata,\n}: {\n input: any;\n output: any;\n expected: any;\n metadata: Record;\n}): number | null {\n if (expected === null) return null;\n return output === expected ? 1 : 0;\n}","type":"inline","runtime_context":{"runtime":"node","version":"22"}},"type":"code"},"origin":null,"function_schema":null} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json rename to src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json rename to src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json rename to src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json rename to src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json b/src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json rename to src/test/resources/cassettes/braintrust/__files/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json b/src/test/resources/cassettes/braintrust/__files/v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json similarity index 100% rename from src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json rename to src/test/resources/cassettes/braintrust/__files/v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-71df9154-af57-4780-b607-897e17535f35.json b/src/test/resources/cassettes/braintrust/__files/v1_project-71df9154-af57-4780-b607-897e17535f35.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-71df9154-af57-4780-b607-897e17535f35.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json b/src/test/resources/cassettes/braintrust/__files/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json b/src/test/resources/cassettes/braintrust/__files/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json b/src/test/resources/cassettes/braintrust/__files/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json b/src/test/resources/cassettes/braintrust/__files/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json b/src/test/resources/cassettes/braintrust/__files/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json new file mode 100644 index 0000000..f2e7801 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/__files/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json @@ -0,0 +1 @@ +{"id":"6ae68365-7620-4630-921b-bac416634fc8","org_id":"5d7c97d7-fef1-4cb7-bda6-7e3756a0ca8e","name":"java-unit-test","description":null,"created":"2026-01-21T01:32:52.137Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"java-devserver","description":null}]}} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json new file mode 100644 index 0000000..35a9ea1 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json @@ -0,0 +1,35 @@ +{ + "id" : "11971758-b399-4b42-aa35-1f6a1045315e", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-11971758-b399-4b42-aa35-1f6a1045315e.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:50 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "5bf5a0a1-c8a1-48ee-a5ee-a4536dca491b", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "698545760000000005245d4967872df1", + "x-amz-apigw-id" : "YVfKgER2IAMElhg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854576-318c85645c94a2836b98978e;Parent=0ab56c0fb7ee0b3a;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 d118b2ea8414d381f46f91331ab67f02.cloudfront.net (CloudFront), 1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "Q5xEIjzEAQkiNI08mmJEqMcTPGdjCKs3UuMWF-1OGnfPK1hYw46I4A==" + } + }, + "uuid" : "11971758-b399-4b42-aa35-1f6a1045315e", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-6", + "newScenarioState" : "scenario-2-api-apikey-login-7", + "insertionIndex" : 18 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json new file mode 100644 index 0000000..b077f9d --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json @@ -0,0 +1,35 @@ +{ + "id" : "3e789743-f876-49db-accb-5d66f448d423", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-3e789743-f876-49db-accb-5d66f448d423.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:43 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "fbfed5ad-7b68-4293-9b3b-1b233d49d0c6", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985456f000000000e0ed3fab8ab2988", + "x-amz-apigw-id" : "YVfJiF5aIAMEaOQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456f-756991966b20889a3ce2545e;Parent=4069a99185431783;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 c811366f973da19436481e09019ebc0e.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "S2YTk7HFs8DThwDDCLf8N6UACDjwZsoecIiCaadbKTOpIb7lARXx8w==" + } + }, + "uuid" : "3e789743-f876-49db-accb-5d66f448d423", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-3", + "newScenarioState" : "scenario-2-api-apikey-login-4", + "insertionIndex" : 6 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json new file mode 100644 index 0000000..35db78b --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json @@ -0,0 +1,35 @@ +{ + "id" : "4cb203be-bdee-461f-b8a3-e32ab3ea6bce", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-4cb203be-bdee-461f-b8a3-e32ab3ea6bce.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:42 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "546d199b-57a8-40ce-911d-b1c67681df2f", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985456e000000006786b95725747c19", + "x-amz-apigw-id" : "YVfJVFinoAMEXTA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456e-4bfe6df130dc6c733c5b5d1b;Parent=6552a03360772639;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 9257f9c4051fe8bd6cc4a09855b66350.cloudfront.net (CloudFront), 1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "x_djncoR_YXe262GzZQ9ZTpqPej1QaN8nPCs5MuqaPVLm8Eq7cYjnQ==" + } + }, + "uuid" : "4cb203be-bdee-461f-b8a3-e32ab3ea6bce", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-2", + "newScenarioState" : "scenario-2-api-apikey-login-3", + "insertionIndex" : 3 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json new file mode 100644 index 0000000..e20f256 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json @@ -0,0 +1,34 @@ +{ + "id" : "52b48d5e-745d-4b33-95d5-cb41a5f37e89", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-52b48d5e-745d-4b33-95d5-cb41a5f37e89.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:07 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "61002381-c133-4152-b739-c9e74e3da4ed", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985458700000000090c27ef9d947d53", + "x-amz-apigw-id" : "YVfNRFouIAMEiOg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854587-771d26ee31f7117b2b67e952;Parent=44dd38efd1050bc6;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 7605973575a3551426b82751020317de.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "TKVL_46TNryod7ighJXZFQThDOQs9ogtzil8L0tFoc3XqhAXvoDq-Q==" + } + }, + "uuid" : "52b48d5e-745d-4b33-95d5-cb41a5f37e89", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-15", + "insertionIndex" : 60 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json new file mode 100644 index 0000000..16af861 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json @@ -0,0 +1,35 @@ +{ + "id" : "6285519c-5e1e-4d98-89c1-d9d26486eaa6", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-6285519c-5e1e-4d98-89c1-d9d26486eaa6.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:02 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "be590e43-fbe7-46e8-9469-224636c96748", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "698545820000000039664e88e7a0d7f4", + "x-amz-apigw-id" : "YVfMdErzoAMEFWQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854582-3d9496fc4c63c0927fd915ae;Parent=6819e97db12e18f1;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 940972e9e344075576fe20d5db482122.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "kzrf7_tBP1zjPbu7QdsaAzI-OBEOPIic4s0mp6vIFtHkIz6ZNb8LoA==" + } + }, + "uuid" : "6285519c-5e1e-4d98-89c1-d9d26486eaa6", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-13", + "newScenarioState" : "scenario-2-api-apikey-login-14", + "insertionIndex" : 48 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json new file mode 100644 index 0000000..45ad2da --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json @@ -0,0 +1,35 @@ +{ + "id" : "64540e38-3e62-4149-a407-16b06e7a304d", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-64540e38-3e62-4149-a407-16b06e7a304d.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:56 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "ce3e3828-22ce-487d-8f83-e798e08ae008", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985457c000000001e0ffcf9f545fda3", + "x-amz-apigw-id" : "YVfLfH7YIAMEVcw=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457c-2709452433b340cb46386d1e;Parent=3cbab39bcb2f2d5f;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 d525041695bdb6325f78ebba5c11b8a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "wsDo7l9dypa89U5VmRqElf4nrXvzJMBNbAdde_UG4PeiEmXjAShGhw==" + } + }, + "uuid" : "64540e38-3e62-4149-a407-16b06e7a304d", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-10", + "newScenarioState" : "scenario-2-api-apikey-login-11", + "insertionIndex" : 32 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json new file mode 100644 index 0000000..2429541 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json @@ -0,0 +1,35 @@ +{ + "id" : "646bf803-2721-42f2-b94a-2799cc16e6dc", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-646bf803-2721-42f2-b94a-2799cc16e6dc.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:40 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "33163b1b-adb2-4286-9c53-2b197c49cf05", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985456b000000007ec2b01fd04cc8a7", + "x-amz-apigw-id" : "YVfI7HpxoAMELoQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456b-1760bc386395f9954ef0db98;Parent=277fb534277125fb;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 95a087e13956fc03ffaeeaec4faa051a.cloudfront.net (CloudFront), 1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "4RYe557vTPv74Ev23mU9V0ANvGwf5x6mbRBq5hxO4VVvtFOVto3FQQ==" + } + }, + "uuid" : "646bf803-2721-42f2-b94a-2799cc16e6dc", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-2-api-apikey-login-2", + "insertionIndex" : 2 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json new file mode 100644 index 0000000..2a6542d --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json @@ -0,0 +1,35 @@ +{ + "id" : "65c8a067-a552-4f06-9566-92e1de5ec860", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-65c8a067-a552-4f06-9566-92e1de5ec860.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:58 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "f019fc5d-fa39-4c3c-9a3f-b7a94828020b", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985457e000000005d5bbe9c9e0a7d9f", + "x-amz-apigw-id" : "YVfL2EpYIAMEALw=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457e-64c73f250a27a761688c9563;Parent=19e2127cf9d38d54;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 ee5f8da78d4211a93c9dba8864a4067e.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "Xgk6MHQCLwLVbtzNxt4mnCqVmlhp8_YAeVIPfecy8Pb5UgnYTsqoog==" + } + }, + "uuid" : "65c8a067-a552-4f06-9566-92e1de5ec860", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-11", + "newScenarioState" : "scenario-2-api-apikey-login-12", + "insertionIndex" : 38 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json deleted file mode 100644 index 8b8aeb2..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "id" : "68a49a40-dfe4-41d9-a6a7-5023c431254b", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-68a49a40-dfe4-41d9-a6a7-5023c431254b.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:05 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "23f528d7-ebf7-41e2-9f0b-ef2bb770438b", - "x-amzn-Remapped-content-length" : "395", - "x-bt-internal-trace-id" : "697308c50000000068d808765efbc7e1", - "x-amz-apigw-id" : "Xn5O5HVWIAMEZvA=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c5-09266ed92479ae524fed16c7;Parent=569846c52114e196;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 5f438acc4bc4bcf2bce0445584c013cc.cloudfront.net (CloudFront), 1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "q2fthlL0f-de6l-0TpHMQBwTLJEaA3fth2klx168qpqNVdklUPXP4Q==" - } - }, - "uuid" : "68a49a40-dfe4-41d9-a6a7-5023c431254b", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-1-api-apikey-login-2", - "insertionIndex" : 1 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json deleted file mode 100644 index 791cefc..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "720807f6-1acb-4361-8f82-8fd8c71d6a99", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-720807f6-1acb-4361-8f82-8fd8c71d6a99.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:06 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "9714cf06-3569-4d6c-a9a2-fb3fe1b886e8", - "x-amzn-Remapped-content-length" : "395", - "x-bt-internal-trace-id" : "697308c60000000064f3337c94881869", - "x-amz-apigw-id" : "Xn5PBGhPIAMEZNA=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c6-1b2bc45629f791de2a39b5b5;Parent=5c1a0861db4a7a74;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 d178790752746ce7e53fab1b13e75448.cloudfront.net (CloudFront), 1.1 74e8c76139b8c7f9b11d5e4441c2a7a2.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "8v0fRj1prIwPHYubr8dcUNM_L5XiFvlYG4U7mq97jOFy9VaDLpQ87A==" - } - }, - "uuid" : "720807f6-1acb-4361-8f82-8fd8c71d6a99", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-2", - "insertionIndex" : 3 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json new file mode 100644 index 0000000..fcfa873 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json @@ -0,0 +1,35 @@ +{ + "id" : "7c14b8f6-5ad3-440a-9bfb-b6876928954f", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7c14b8f6-5ad3-440a-9bfb-b6876928954f.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:55 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "28b4da67-df80-4ed0-8b93-8a7022e6f091", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985457b000000000e6fa1ee9447734b", + "x-amz-apigw-id" : "YVfLTE7HIAMET4g=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457b-34ac9e1f799cf9cc7d2ce81f;Parent=31f8f1d1c46471ed;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 ec62626c4e205f1980b4ed65142b10d8.cloudfront.net (CloudFront), 1.1 566cc276dff9847158a5a9854be4df42.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "9wGwrGRiPe59IU0AaskSgJEwTlI-IGd46ZWUM1a-AEWUvpF9be7Nog==" + } + }, + "uuid" : "7c14b8f6-5ad3-440a-9bfb-b6876928954f", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-9", + "newScenarioState" : "scenario-2-api-apikey-login-10", + "insertionIndex" : 29 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json new file mode 100644 index 0000000..cc4491b --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json @@ -0,0 +1,35 @@ +{ + "id" : "bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:00 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "191b014b-a0f3-48da-aa44-b4ef1c63fc93", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "69854580000000001c445064e27049e6", + "x-amz-apigw-id" : "YVfMLEI1IAMEH4w=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854580-4ad379ee0299f9835c533460;Parent=0f1170a4d519e2bc;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 74e8c76139b8c7f9b11d5e4441c2a7a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "wC5UF7JvefUJtwmt8YKkVYzojp4hUIRq1iGZpmAR9_7FjQOCaBcjWQ==" + } + }, + "uuid" : "bb18f760-a4c7-4a38-ae54-7e1adf5bfd1c", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-12", + "newScenarioState" : "scenario-2-api-apikey-login-13", + "insertionIndex" : 43 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json new file mode 100644 index 0000000..84ac500 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json @@ -0,0 +1,35 @@ +{ + "id" : "cbc16542-5f4b-4692-b2b1-9a37e222f8ec", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-cbc16542-5f4b-4692-b2b1-9a37e222f8ec.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:51 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "2bfef43d-d38b-4dd8-a12a-c880583dc785", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "698545770000000031a84a49744bfbda", + "x-amz-apigw-id" : "YVfKyHg2IAMEU8w=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854577-3b1acf99332ce0ee4f966c16;Parent=51e59fdd247cd7cb;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 0eb43913f9caf453beb959a8a836a688.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "sQnznrARMVv9isHlG89fVn59e-oan5FyLu3zwTlfZO5LFx6Yjf5FwQ==" + } + }, + "uuid" : "cbc16542-5f4b-4692-b2b1-9a37e222f8ec", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-7", + "newScenarioState" : "scenario-2-api-apikey-login-8", + "insertionIndex" : 22 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json new file mode 100644 index 0000000..b38f181 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json @@ -0,0 +1,35 @@ +{ + "id" : "d28762a6-d6bd-4f64-83ff-77fb01b9eec6", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-d28762a6-d6bd-4f64-83ff-77fb01b9eec6.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:05 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "76a51a93-90bc-4ee2-8002-713b2e9be38b", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "6985458500000000190874852faa6562", + "x-amz-apigw-id" : "YVfM8Gp6oAMERcA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854585-2a7900866ea960925acc4336;Parent=0c5b9acb7a7196b2;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 83d24992402f7b214901ab76fbdc11e2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "haFOkQn8kp3a_6FVwEDQyPIWsUAsT7M2RzC6O4fApHoyUdU6FzsTxQ==" + } + }, + "uuid" : "d28762a6-d6bd-4f64-83ff-77fb01b9eec6", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-14", + "newScenarioState" : "scenario-2-api-apikey-login-15", + "insertionIndex" : 55 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json new file mode 100644 index 0000000..82a402e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json @@ -0,0 +1,35 @@ +{ + "id" : "d9587735-cdbe-40c6-9229-35614948a139", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-d9587735-cdbe-40c6-9229-35614948a139.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:53 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "9318d33a-323a-4821-87ea-4a1ff6e48c76", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "69854579000000005e97a7cd35777346", + "x-amz-apigw-id" : "YVfK_HNNoAMEioQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854579-7c52e73201ea0b216fd460a5;Parent=64272c922d93622a;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 e82f2bd1d85893fad1abb144337e7368.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "TyIGrV7d-_z66zgHRr4oWdkiceuY_knOAZwGb_gW--3spJSj8qtmTw==" + } + }, + "uuid" : "d9587735-cdbe-40c6-9229-35614948a139", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-8", + "newScenarioState" : "scenario-2-api-apikey-login-9", + "insertionIndex" : 25 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json new file mode 100644 index 0000000..6da8f8f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json @@ -0,0 +1,35 @@ +{ + "id" : "e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:44 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "06da9fd3-a78f-480e-b8ec-2911275945a4", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "698545700000000012d06793a918946c", + "x-amz-apigw-id" : "YVfJrHryIAMEnbQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854570-7cfe332050d64ab23b2a7e99;Parent=7093fa864c06b1bc;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 d08613e1dd8ad614e47875ae31a8af20.cloudfront.net (CloudFront), 1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "5CC-pbR6u0CqkJ4Pc6Kxc1z9O2xN6N4-6St_MICeSZj7T7OC37UZ9w==" + } + }, + "uuid" : "e0d8e8a1-ce3e-4f6d-88f1-1d4a6e23c127", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-4", + "newScenarioState" : "scenario-2-api-apikey-login-5", + "insertionIndex" : 8 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json new file mode 100644 index 0000000..9086038 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json @@ -0,0 +1,35 @@ +{ + "id" : "e6654591-b19b-43f7-a99b-d6d52749bb56", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-e6654591-b19b-43f7-a99b-d6d52749bb56.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:49 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "51c28ae4-e139-4b2b-9c6a-f0c993580315", + "x-amzn-Remapped-content-length" : "395", + "x-bt-internal-trace-id" : "698545750000000002a92d47b076037b", + "x-amz-apigw-id" : "YVfKWHFooAMEhew=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"18b-OPCBBHzVVuCPaglXVbFjmsFzOoE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854575-335ffe5a3cf303fa505f818f;Parent=6339c3584f6d944c;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 0eb43913f9caf453beb959a8a836a688.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "5o-3d_KVsWQw9W15SAyQI8fGBPEMKehtkZyo6caOd7IDcXcY5e1hog==" + } + }, + "uuid" : "e6654591-b19b-43f7-a99b-d6d52749bb56", + "persistent" : true, + "scenarioName" : "scenario-2-api-apikey-login", + "requiredScenarioState" : "scenario-2-api-apikey-login-5", + "newScenarioState" : "scenario-2-api-apikey-login-6", + "insertionIndex" : 15 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json b/src/test/resources/cassettes/braintrust/mappings/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json new file mode 100644 index 0000000..279fe55 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/btql-dccd0ad6-24cd-47f0-abae-13397043c376.json @@ -0,0 +1,41 @@ +{ + "id" : "dccd0ad6-24cd-47f0-abae-13397043c376", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"select: span_id, span_parents, root_span_id, name | from: project_logs('6ae68365-7620-4630-921b-bac416634fc8') | filter: root_span_id = '1ac0a409fabeeef1bbee8c5b89d20f78'\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-dccd0ad6-24cd-47f0-abae-13397043c376.json", + "headers" : { + "Content-Type" : "application/json", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:04 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "88703b45-8d86-4882-bb73-6aeada647f65", + "x-bt-internal-trace-id" : "69854584000000004772218ee2a9dbae", + "x-amz-apigw-id" : "YVfMvFPKoAMEkLQ=", + "vary" : "Origin", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854584-2a00829743b37e1c4ea76af4;Parent=39cd1e3a31eb153f;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-cursor" : "aYVFg6mfAAA", + "Via" : "1.1 ec62626c4e205f1980b4ed65142b10d8.cloudfront.net (CloudFront), 1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "xUZYie-ylHvH0tT-ADS2nEsYf_cGKv862v5jEvLASsLFq0jhi_5pnQ==" + } + }, + "uuid" : "dccd0ad6-24cd-47f0-abae-13397043c376", + "persistent" : true, + "insertionIndex" : 51 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-03141749-982b-4f0a-83b5-e40fae1ba250.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-03141749-982b-4f0a-83b5-e40fae1ba250.json new file mode 100644 index 0000000..5328a5e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-03141749-982b-4f0a-83b5-e40fae1ba250.json @@ -0,0 +1,39 @@ +{ + "id" : "03141749-982b-4f0a-83b5-e40fae1ba250", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CssMCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKNCwolCiNpby5vcGVudGVsZW1ldHJ5LmFudGhyb3BpYy1qYXZhLTIuOBLjCgoQ1DyvjL7r/D4NJRD3Mq3GyRIIcH6RiXCEICEqGWFudGhyb3BpYy5tZXNzYWdlcy5jcmVhdGUwAzl5IN96dYSRGEEVrwbMdYSRGEozChRnZW5fYWkucmVxdWVzdC5tb2RlbBIbChljbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIySicKGmdlbl9haS5yZXF1ZXN0LnRlbXBlcmF0dXJlEgkhAAAAAAAAAABKHAoNZ2VuX2FpLnN5c3RlbRILCglhbnRocm9waWNKMwomYnJhaW50cnVzdC5tZXRyaWNzLnRpbWVfdG9fZmlyc3RfdG9rZW4SCSGT3i1Mg4v1P0o0ChJnZW5fYWkucmVzcG9uc2UuaWQSHgocbXNnXzAxUVoyS29nMUNqdHNLdkdabkFiWVlTUUofChlnZW5fYWkudXNhZ2UuaW5wdXRfdG9rZW5zEgIYE0qmBAoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhKLBAqIBHsiaWQiOiJtc2dfMDFRWjJLb2cxQ2p0c0t2R1puQWJZWVNRIiwiY29udGVudCI6W3sidGV4dCI6IlRoZSBjYXBpdGFsIG9mIEZyYW5jZSBpcyBQYXJpcy4iLCJ0eXBlIjoidGV4dCIsInZhbGlkIjp0cnVlfV0sIm1vZGVsIjoiY2xhdWRlLTMtNS1oYWlrdS0yMDI0MTAyMiIsInJvbGUiOiJhc3Npc3RhbnQiLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidHlwZSI6Im1lc3NhZ2UiLCJ1c2FnZSI6eyJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJ2YWxpZCI6dHJ1ZX0sImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImlucHV0X3Rva2VucyI6MTksIm91dHB1dF90b2tlbnMiOjEwLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsInZhbGlkIjp0cnVlLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9LCJ2YWxpZCI6dHJ1ZX1KHwoZZ2VuX2FpLnJlcXVlc3QubWF4X3Rva2VucxICGDJKNAoVZ2VuX2FpLm9wZXJhdGlvbi5uYW1lEhsKGWFudGhyb3BpYy5tZXNzYWdlcy5jcmVhdGVKFwoIcHJvdmlkZXISCwoJYW50aHJvcGljSjQKFWdlbl9haS5yZXNwb25zZS5tb2RlbBIbChljbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIySq4BChVicmFpbnRydXN0LmlucHV0X2pzb24SlAEKkQFbeyJjb250ZW50IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/Iiwicm9sZSI6InVzZXIiLCJ2YWxpZCI6dHJ1ZX0seyJjb250ZW50IjoiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50Iiwicm9sZSI6InN5c3RlbSIsInZhbGlkIjpmYWxzZX1dSjIKEWJyYWludHJ1c3QucGFyZW50Eh0KG3Byb2plY3RfbmFtZTpqYXZhLXVuaXQtdGVzdEogChpnZW5fYWkudXNhZ2Uub3V0cHV0X3Rva2VucxICGApKMAoeZ2VuX2FpLnJlc3BvbnNlLmZpbmlzaF9yZWFzb25zEg4qDAoKCghlbmRfdHVybnoAhQEBAQAA" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:10 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "58c0a93c-16a4-4401-b5a3-b5be11d0d11b", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985458a000000000c93b3d04bc38175", + "x-amz-apigw-id" : "YVfNpHBPoAMEX8w=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985458a-5e8fad32559d9a9065648424;Parent=69841681ccd10e05;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "VuU7nimnpYR0mDX51Hw7UQqERpDP9WTOVuoqLHcB-XWunlDjwgbgdQ==" + } + }, + "uuid" : "03141749-982b-4f0a-83b5-e40fae1ba250", + "persistent" : true, + "insertionIndex" : 62 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-07552bc5-ffac-4b9a-8f5b-7895bb1b5903.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-07552bc5-ffac-4b9a-8f5b-7895bb1b5903.json new file mode 100644 index 0000000..a6a20db --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-07552bc5-ffac-4b9a-8f5b-7895bb1b5903.json @@ -0,0 +1,39 @@ +{ + "id" : "07552bc5-ffac-4b9a-8f5b-7895bb1b5903", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CosUCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRLNEgomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSxAEKEJHFlCvTtn2sVv3k24Fu8dISCDzpE+aNZDd7IghQGFyw6Ci+ZyoEdGFzazABOUSs0H5yhJEYQX680n5yhJEYSkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6MmI3NGM2ZjAtY2I5YS00ZGRkLWEzMGUtOTdhYWVjZmRlZDk4Si8KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhEKD3sidHlwZSI6InRhc2sifXoAhQEBAQAAErsCChCRxZQr07Z9rFb95NuBbvHSEgjUHJnJpKfYXiIIUBhcsOgovmcqBXNjb3JlMAE5+5LWfnKEkRhBgQPdfnKEkRhKKwoRYnJhaW50cnVzdC5zY29yZXMSFgoUeyJmcnVpdF9zY29yZXIiOjAuMH1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDoyYjc0YzZmMC1jYjlhLTRkZGQtYTMwZS05N2FhZWNmZGVkOThKRgoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSKAomeyJ0eXBlIjoic2NvcmUiLCJuYW1lIjoiZnJ1aXRfc2NvcmVyIn1KMAoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIWChR7ImZydWl0X3Njb3JlciI6MC4wfXoAhQEBAQAAEscCChCRxZQr07Z9rFb95NuBbvHSEghHMZ71I767GyIIUBhcsOgovmcqBXNjb3JlMAE580HefnKEkRhB0A7jfnKEkRhKLwoRYnJhaW50cnVzdC5zY29yZXMSGgoYeyJ2ZWdldGFibGVfc2NvcmVyIjowLjB9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6MmI3NGM2ZjAtY2I5YS00ZGRkLWEzMGUtOTdhYWVjZmRlZDk4SkoKGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEiwKKnsidHlwZSI6InNjb3JlIiwibmFtZSI6InZlZ2V0YWJsZV9zY29yZXIifUo0ChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhoKGHsidmVnZXRhYmxlX3Njb3JlciI6MC4wfXoAhQEBAQAAEr8CChCRxZQr07Z9rFb95NuBbvHSEghQGFyw6Ci+ZyoEZXZhbDADObzZy35yhJEYQUSr435yhJEYSjEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhIYChZ7ImlucHV0Ijoic3RyYXdiZXJyeSJ9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6MmI3NGM2ZjAtY2I5YS00ZGRkLWEzMGUtOTdhYWVjZmRlZDk4Si8KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhEKD3sidHlwZSI6ImV2YWwifUouChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhQKEnsib3V0cHV0IjoiZnJ1aXQifUogChNicmFpbnRydXN0LmV4cGVjdGVkEgkKByJmcnVpdCJ6AIUBAQEAABLEAQoQ3NZvA6PoHmzkLeA+wD+x3xIIz01ZGkZMsdMiCG9aUM1IpYSNKgR0YXNrMAE59ZHqfnKEkRhBHHfrfnKEkRhKSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDoyYjc0YzZmMC1jYjlhLTRkZGQtYTMwZS05N2FhZWNmZGVkOThKLwoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEQoPeyJ0eXBlIjoidGFzayJ9egCFAQEBAAASuwIKENzWbwOj6B5s5C3gPsA/sd8SCL8xFnDjWsDUIghvWlDNSKWEjSoFc2NvcmUwATmrz+1+coSRGEEfZ/F+coSRGEorChFicmFpbnRydXN0LnNjb3JlcxIWChR7ImZydWl0X3Njb3JlciI6MC4wfUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOjJiNzRjNmYwLWNiOWEtNGRkZC1hMzBlLTk3YWFlY2ZkZWQ5OEpGChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIoCiZ7InR5cGUiOiJzY29yZSIsIm5hbWUiOiJmcnVpdF9zY29yZXIifUowChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhYKFHsiZnJ1aXRfc2NvcmVyIjowLjB9egCFAQEBAAASxwIKENzWbwOj6B5s5C3gPsA/sd8SCLDjNhm2X8z0IghvWlDNSKWEjSoFc2NvcmUwATkAu/J+coSRGEHcqvZ+coSRGEovChFicmFpbnRydXN0LnNjb3JlcxIaChh7InZlZ2V0YWJsZV9zY29yZXIiOjAuMH1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDoyYjc0YzZmMC1jYjlhLTRkZGQtYTMwZS05N2FhZWNmZGVkOThKSgoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSLAoqeyJ0eXBlIjoic2NvcmUiLCJuYW1lIjoidmVnZXRhYmxlX3Njb3JlciJ9SjQKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SGgoYeyJ2ZWdldGFibGVfc2NvcmVyIjowLjB9egCFAQEBAAASwgIKENzWbwOj6B5s5C3gPsA/sd8SCG9aUM1IpYSNKgRldmFsMAM5khXofnKEkRhB3kb3fnKEkRhKMAoVYnJhaW50cnVzdC5pbnB1dF9qc29uEhcKFXsiaW5wdXQiOiJhc3BhcmFndXMifUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOjJiNzRjNmYwLWNiOWEtNGRkZC1hMzBlLTk3YWFlY2ZkZWQ5OEovChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIRCg97InR5cGUiOiJldmFsIn1KLgoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIUChJ7Im91dHB1dCI6ImZydWl0In1KJAoTYnJhaW50cnVzdC5leHBlY3RlZBINCgsidmVnZXRhYmxlInoAhQEBAQAA" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:56 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "796c2dfc-2fcf-42e5-86f2-f7133c93b2e8", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985457c000000003f244e0d9f27e18a", + "x-amz-apigw-id" : "YVfLhEUEIAMENeQ=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457c-71be36ee4b6b32db50eb9c06;Parent=019ef786015b7272;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 4c9457912580c6114eec78b8fa604a20.cloudfront.net (CloudFront), 1.1 4ac8d091dce10e726cfc5404bfed72b8.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "XzFE7fYQu0yKxFskdZeQHo9DHBLPpWZTmtyTZPmTg5NcpKQXh8boBA==" + } + }, + "uuid" : "07552bc5-ffac-4b9a-8f5b-7895bb1b5903", + "persistent" : true, + "insertionIndex" : 33 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-112257d7-66a5-45f4-a8dd-ad9be4ad5b4b.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-112257d7-66a5-45f4-a8dd-ad9be4ad5b4b.json new file mode 100644 index 0000000..7e85bfe --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-112257d7-66a5-45f4-a8dd-ad9be4ad5b4b.json @@ -0,0 +1,39 @@ +{ + "id" : "112257d7-66a5-45f4-a8dd-ad9be4ad5b4b", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CuoPCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKsDgomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSxAEKELqaUG0zbZobGzdCBNQdUZYSCJy7SuxRg6btIgh6zQq4vRQW6ioEdGFzazABOVVBhcFxhJEYQcZuhsFxhJEYSkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6MzdhYzNmM2YtMDBiOS00YTVmLTk5NzctZmFmMTM0OWFiODgxSi8KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhEKD3sidHlwZSI6InRhc2sifXoAhQEBAQAAErgCChC6mlBtM22aGxs3QgTUHVGWEghUsahXpZRhUSIIes0KuL0UFuoqBXNjb3JlMAE5K0mIwXGEkRhB+FuKwXGEkRhKKgoRYnJhaW50cnVzdC5zY29yZXMSFQoTeyJleGFjdF9tYXRjaCI6MC4wfUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOjM3YWMzZjNmLTAwYjktNGE1Zi05OTc3LWZhZjEzNDlhYjg4MUpFChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxInCiV7InR5cGUiOiJzY29yZSIsIm5hbWUiOiJleGFjdF9tYXRjaCJ9Si8KFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SFQoTeyJleGFjdF9tYXRjaCI6MC4wfXoAhQEBAQAAEsECChC6mlBtM22aGxs3QgTUHVGWEgh6zQq4vRQW6ioEZXZhbDADORbkgsFxhJEYQTerisFxhJEYSjAKFWJyYWludHJ1c3QuaW5wdXRfanNvbhIXChV7ImlucHV0Ijoibm8tb3JpZ2luIn1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDozN2FjM2YzZi0wMGI5LTRhNWYtOTk3Ny1mYWYxMzQ5YWI4ODFKLwoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEQoPeyJ0eXBlIjoiZXZhbCJ9Si4KFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SFAoSeyJvdXRwdXQiOiJmcnVpdCJ9SiMKE2JyYWludHJ1c3QuZXhwZWN0ZWQSDAoKIndoYXRldmVyInoAhQEBAQAAEsQBChDokUEfDnke8SQrfnBV9pW1EgjbxwIrJmxEGiIIoxBBBbssr5YqBHRhc2swATklOazBcYSRGEEG/6zBcYSRGEpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOjM3YWMzZjNmLTAwYjktNGE1Zi05OTc3LWZhZjEzNDlhYjg4MUovChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIRCg97InR5cGUiOiJ0YXNrIn16AIUBAQEAABK4AgoQ6JFBHw55HvEkK35wVfaVtRII+Q+yqsOcEf0iCKMQQQW7LK+WKgVzY29yZTABOdhjrsFxhJEYQegnsMFxhJEYSioKEWJyYWludHJ1c3Quc2NvcmVzEhUKE3siZXhhY3RfbWF0Y2giOjAuMH1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDozN2FjM2YzZi0wMGI5LTRhNWYtOTk3Ny1mYWYxMzQ5YWI4ODFKRQoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSJwoleyJ0eXBlIjoic2NvcmUiLCJuYW1lIjoiZXhhY3RfbWF0Y2gifUovChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhUKE3siZXhhY3RfbWF0Y2giOjAuMH16AIUBAQEAABK5AwoQ6JFBHw55HvEkK35wVfaVtRIIoxBBBbssr5YqBGV2YWwwAzkC7YzBcYSRGEGRd7DBcYSRGEoxChVicmFpbnRydXN0LmlucHV0X2pzb24SGAoWeyJpbnB1dCI6Imhhcy1vcmlnaW4ifUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOjM3YWMzZjNmLTAwYjktNGE1Zi05OTc3LWZhZjEzNDlhYjg4MUovChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIRCg97InR5cGUiOiJldmFsIn1KLgoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIUChJ7Im91dHB1dCI6ImZydWl0In1KdQoRYnJhaW50cnVzdC5vcmlnaW4SYApeeyJvYmplY3RfdHlwZSI6InVuaXQtdGVzdCIsIm9iamVjdF9pZCI6IjEyMzQiLCJpZCI6IjU2NzgiLCJfeGFjdF9pZCI6IjkiLCJjcmVhdGVkIjoid2hhdGV2ZXIifUojChNicmFpbnRydXN0LmV4cGVjdGVkEgwKCiJ3aGF0ZXZlciJ6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:53 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "816a7c57-8abf-41d4-965c-d04285a690c2", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854579000000003ea59e88265b9b9f", + "x-amz-apigw-id" : "YVfLFHt5IAMEQRA=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854579-44dbc9ba019de27567d1ee15;Parent=15715b12c1abc90a;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 d08613e1dd8ad614e47875ae31a8af20.cloudfront.net (CloudFront), 1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "Kt2hCc6ZGHcw4P2UesTyG8hL7Gk-0O6KRCnLqjmKDNNstS-GS8uQZw==" + } + }, + "uuid" : "112257d7-66a5-45f4-a8dd-ad9be4ad5b4b", + "persistent" : true, + "insertionIndex" : 26 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1a4a4881-b584-446c-a7ca-9fe1d3673751.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1a4a4881-b584-446c-a7ca-9fe1d3673751.json new file mode 100644 index 0000000..ea7278f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1a4a4881-b584-446c-a7ca-9fe1d3673751.json @@ -0,0 +1,39 @@ +{ + "id" : "1a4a4881-b584-446c-a7ca-9fe1d3673751", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CucGCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKpBQomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkS/gQKEApGaSc2v+XOhcQDunLvwmkSCCbiv4huXARtKg9DaGF0IENvbXBsZXRpb24wAznObea9d4SRGEFZOAXqd4SRGEpXChVicmFpbnRydXN0LmlucHV0X2pzb24SPgo8W3sicm9sZSI6InVzZXIiLCJjb250ZW50IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dSnAKEmJyYWludHJ1c3QubWV0cmljcxJaClh7ImNvbXBsZXRpb25fdG9rZW5zIjo3LCJwcm9tcHRfdG9rZW5zIjoxNCwidG9rZW5zIjoyMSwidGltZV90b19maXJzdF90b2tlbiI6MC43Mzk1MzAwNTd9SjIKEWJyYWludHJ1c3QucGFyZW50Eh0KG3Byb2plY3RfbmFtZTpqYXZhLXVuaXQtdGVzdEouChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIQCg57InR5cGUiOiJsbG0ifUq9AQoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhKiAQqfAVt7ImluZGV4IjowLCJtZXNzYWdlIjp7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiVGhlIGNhcGl0YWwgb2YgRnJhbmNlIGlzIFBhcmlzLiIsInJlZnVzYWwiOm51bGwsImFubm90YXRpb25zIjpbXX0sImxvZ3Byb2JzIjpudWxsLCJmaW5pc2hfcmVhc29uIjoic3RvcCJ9XUpEChNicmFpbnRydXN0Lm1ldGFkYXRhEi0KK3sicHJvdmlkZXIiOiJvcGVuYWkiLCJtb2RlbCI6ImdwdC00by1taW5pIn16AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:19 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "24dfa7cb-74d4-4d51-aa3e-086d81534e0d", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985459300000000760d661befd9135b", + "x-amz-apigw-id" : "YVfPFH81IAMEugw=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854593-05311c8b1809438f2f1df7a6;Parent=2ab68df5d50437a8;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 d9d466ed70d93f34739969f91577ec74.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "2ruSZo3OsUKO9R-RATG6wgYo4WV75Czo0JMDTEQTBOTOfR74ObsaCw==" + } + }, + "uuid" : "1a4a4881-b584-446c-a7ca-9fe1d3673751", + "persistent" : true, + "insertionIndex" : 66 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1f261235-ead4-4033-a4a3-e06231b892c4.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1f261235-ead4-4033-a4a3-e06231b892c4.json new file mode 100644 index 0000000..f71d62e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-1f261235-ead4-4033-a4a3-e06231b892c4.json @@ -0,0 +1,39 @@ +{ + "id" : "1f261235-ead4-4033-a4a3-e06231b892c4", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CsgPCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKKDgomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSxAEKECIB9FLTBgGZLFq87VesWJoSCBIcIgZfZTSrIgh6tE5zP1l0hioEdGFzazABOa6Jlg1xhJEYQToQmA1xhJEYSkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6Zjg1NTBmMDctZGRmNS00MGFhLTk0ZTktY2YxNThjMDRhZTNmSi8KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhEKD3sidHlwZSI6InRhc2sifXoAhQEBAQAAErsCChAiAfRS0wYBmSxavO1XrFiaEgjpc2XUMA7zIiIIerROcz9ZdIYqBXNjb3JlMAE5JgWbDXGEkRhBShuqDXGEkRhKKwoRYnJhaW50cnVzdC5zY29yZXMSFgoUeyJmcnVpdF9zY29yZXIiOjEuMH1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDpmODU1MGYwNy1kZGY1LTQwYWEtOTRlOS1jZjE1OGMwNGFlM2ZKRgoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSKAomeyJ0eXBlIjoic2NvcmUiLCJuYW1lIjoiZnJ1aXRfc2NvcmVyIn1KMAoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIWChR7ImZydWl0X3Njb3JlciI6MS4wfXoAhQEBAQAAEuYCChAiAfRS0wYBmSxavO1XrFiaEgh6tE5zP1l0hioEZXZhbDADOa1KkQ1xhJEYQbLJqg1xhJEYSjEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhIYChZ7ImlucHV0Ijoic3RyYXdiZXJyeSJ9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMmV4cGVyaW1lbnRfaWQ6Zjg1NTBmMDctZGRmNS00MGFhLTk0ZTktY2YxNThjMDRhZTNmSi8KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhEKD3sidHlwZSI6ImV2YWwifUolCg9icmFpbnRydXN0LnRhZ3MSEioQCgUKA3JlZAoHCgVzd2VldEouChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhQKEnsib3V0cHV0IjoiZnJ1aXQifUogChNicmFpbnRydXN0LmV4cGVjdGVkEgkKByJmcnVpdCJ6AIUBAQEAABLEAQoQldI/46mFvbIW6uc0PhwE1BII47ozXlnMbSEiCKMwvoGSYnLgKgR0YXNrMAE5Sn+wDXGEkRhBViSxDXGEkRhKSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoyZXhwZXJpbWVudF9pZDpmODU1MGYwNy1kZGY1LTQwYWEtOTRlOS1jZjE1OGMwNGFlM2ZKLwoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEQoPeyJ0eXBlIjoidGFzayJ9egCFAQEBAAASuwIKEJXSP+Ophb2yFurnND4cBNQSCAX8aaIG1RvlIgijML6BkmJy4CoFc2NvcmUwATnpybINcYSRGEE0ibUNcYSRGEorChFicmFpbnRydXN0LnNjb3JlcxIWChR7ImZydWl0X3Njb3JlciI6MS4wfUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOmY4NTUwZjA3LWRkZjUtNDBhYS05NGU5LWNmMTU4YzA0YWUzZkpGChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIoCiZ7InR5cGUiOiJzY29yZSIsIm5hbWUiOiJmcnVpdF9zY29yZXIifUowChZicmFpbnRydXN0Lm91dHB1dF9qc29uEhYKFHsiZnJ1aXRfc2NvcmVyIjoxLjB9egCFAQEBAAAS7AIKEJXSP+Ophb2yFurnND4cBNQSCKMwvoGSYnLgKgRldmFsMAM5I2auDXGEkRhBrOC1DXGEkRhKMAoVYnJhaW50cnVzdC5pbnB1dF9qc29uEhcKFXsiaW5wdXQiOiJhc3BhcmFndXMifUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJleHBlcmltZW50X2lkOmY4NTUwZjA3LWRkZjUtNDBhYS05NGU5LWNmMTU4YzA0YWUzZkovChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIRCg97InR5cGUiOiJldmFsIn1KKAoPYnJhaW50cnVzdC50YWdzEhUqEwoHCgVncmVlbgoICgZzYXZvcnlKLgoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIUChJ7Im91dHB1dCI6ImZydWl0In1KJAoTYnJhaW50cnVzdC5leHBlY3RlZBINCgsidmVnZXRhYmxlInoAhQEBAQAA" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:50 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "fca94da0-6ffa-40ce-acaa-ecceb03b2b53", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985457600000000784282e280fabb46", + "x-amz-apigw-id" : "YVfKlEwWoAMEqUw=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854576-641f410c2efdf92d75d0c204;Parent=5e3a30c567d848ee;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 83d24992402f7b214901ab76fbdc11e2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "1lvb-mu1ISw-SviJP_mOqD-REBj9i16xsaa_yt9x2wlLEQzko--hKA==" + } + }, + "uuid" : "1f261235-ead4-4033-a4a3-e06231b892c4", + "persistent" : true, + "insertionIndex" : 19 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json new file mode 100644 index 0000000..ee2ab9f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json @@ -0,0 +1,39 @@ +{ + "id" : "28d2f7b3-b25e-4913-ba26-99594c22406c", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CvEDCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKdAQoNCgt0ZXN0LXNlcnZlchKLAQoQFKGXV68UR8YQXO5Bs8INwhIIXECTi5sVOQMiCHzo97hogE6HKhBzZXJ2ZXItb3BlcmF0aW9uMAE5ovSSOXmEkRhBpoGaOXmEkRhKNQoRYnJhaW50cnVzdC5wYXJlbnQSIAoeZXhwZXJpbWVudF9pZDphYmMxMjMtaHR0cC10ZXN0egCFAQEDAAASkwEKDQoLdGVzdC1jbGllbnQSgQEKEBShl1evFEfGEFzuQbPCDcISCHzo97hogE6HKhBjbGllbnQtb3BlcmF0aW9uMAE5GvokOXmEkRhBurmnOXmEkRhKNQoRYnJhaW50cnVzdC5wYXJlbnQSIAoeZXhwZXJpbWVudF9pZDphYmMxMjMtaHR0cC10ZXN0egCFAQEBAAA=" + } ] + }, + "response" : { + "status" : 403, + "bodyFileName" : "otel_v1_traces-28d2f7b3-b25e-4913-ba26-99594c22406c.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:24 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "af266c59-14fb-4254-b807-6c31dd268283", + "x-bt-internal-trace-id" : "69854598000000007331b16d970969f8", + "x-amz-apigw-id" : "YVfP8FhDoAMEAGA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"13b-SzMrFFSLV7E8kU6l6A57Aoq5AZ4\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854598-15f5d9962fefb0aa38a07e17;Parent=1c2b86c1e57c155a;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Error from cloudfront", + "X-Amz-Cf-Id" : "XIvgqNIOuR4Ll3vs_UhneXWSgJTvuvwp7vCRthTJi4mInMMhcBk8Og==" + } + }, + "uuid" : "28d2f7b3-b25e-4913-ba26-99594c22406c", + "persistent" : true, + "insertionIndex" : 74 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317cd72e-bec9-4bbf-b71c-c257a42eb05b.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317cd72e-bec9-4bbf-b71c-c257a42eb05b.json new file mode 100644 index 0000000..1c6b4c0 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317cd72e-bec9-4bbf-b71c-c257a42eb05b.json @@ -0,0 +1,39 @@ +{ + "id" : "317cd72e-bec9-4bbf-b71c-c257a42eb05b", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "Cv4JCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRLACAojCiFpby5vcGVudGVsZW1ldHJ5LmdlbWluaS1qYXZhLTEuMjASmAgKECAkCSvjcDN05Uv9guJLrH8SCIxdoNrt2nLvKhBnZW5lcmF0ZV9jb250ZW50MAM5UlqhVnaEkRhBEgmbjXaEkRhKwgEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhKoAQqlAXsiY29udGVudHMiOlt7InBhcnRzIjpbeyJ0ZXh0IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBHZXJtYW55PyJ9XSwicm9sZSI6InVzZXIifV0sIm1vZGVsIjoiZ2VtaW5pLTIuMC1mbGFzaC1saXRlIiwiY29uZmlnIjp7InRlbXBlcmF0dXJlIjowLjAsIm1heE91dHB1dFRva2VucyI6NTB9fUpNChJicmFpbnRydXN0Lm1ldHJpY3MSNwo1eyJjb21wbGV0aW9uX3Rva2VucyI6OCwicHJvbXB0X3Rva2VucyI6NywidG9rZW5zIjoxNX1KMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0Si4KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhAKDnsidHlwZSI6ImxsbSJ9StoDChZicmFpbnRydXN0Lm91dHB1dF9qc29uEr8DCrwDeyJjYW5kaWRhdGVzIjpbeyJjb250ZW50Ijp7InBhcnRzIjpbeyJ0ZXh0IjoiVGhlIGNhcGl0YWwgb2YgR2VybWFueSBpcyBCZXJsaW4uXG4ifV0sInJvbGUiOiJtb2RlbCJ9LCJmaW5pc2hSZWFzb24iOiJTVE9QIiwiYXZnTG9ncHJvYnMiOi0wLjA3ODcwNDk1MzE5MzY2NDU1fV0sInVzYWdlTWV0YWRhdGEiOnsicHJvbXB0VG9rZW5Db3VudCI6NywiY2FuZGlkYXRlc1Rva2VuQ291bnQiOjgsInRvdGFsVG9rZW5Db3VudCI6MTUsInByb21wdFRva2Vuc0RldGFpbHMiOlt7Im1vZGFsaXR5IjoiVEVYVCIsInRva2VuQ291bnQiOjd9XSwiY2FuZGlkYXRlc1Rva2Vuc0RldGFpbHMiOlt7Im1vZGFsaXR5IjoiVEVYVCIsInRva2VuQ291bnQiOjh9XX0sIm1vZGVsVmVyc2lvbiI6ImdlbWluaS0yLjAtZmxhc2gtbGl0ZSIsInJlc3BvbnNlSWQiOiJqRVdGYVplMkg0aW5xdHNQaVpDYWtRbyJ9SnUKE2JyYWludHJ1c3QubWV0YWRhdGESXgpceyJwcm92aWRlciI6ImdlbWluaSIsInRlbXBlcmF0dXJlIjowLjAsIm1vZGVsIjoiZ2VtaW5pLTIuMC1mbGFzaC1saXRlIiwibWF4T3V0cHV0VG9rZW5zIjo1MH16AhgBhQEBAQAA" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:13 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "7d8d228a-a3c9-4a72-a515-9584b0e63f36", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985458d00000000654abea941fd5adc", + "x-amz-apigw-id" : "YVfOKGIqoAMEijA=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985458d-6fc322e542fca3a47fda5042;Parent=2e019642b50edbea;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "8QvNSlhFCtSmIjuMs0KlsFYYWq61nt9VhDfS8JijWua3kWkPoWumpw==" + } + }, + "uuid" : "317cd72e-bec9-4bbf-b71c-c257a42eb05b", + "persistent" : true, + "insertionIndex" : 64 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317f89cb-83bd-4300-b32b-a6cf5021633a.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317f89cb-83bd-4300-b32b-a6cf5021633a.json new file mode 100644 index 0000000..7eaf6cc --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-317f89cb-83bd-4300-b32b-a6cf5021633a.json @@ -0,0 +1,39 @@ +{ + "id" : "317f89cb-83bd-4300-b32b-a6cf5021633a", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CvYCCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRK4AQomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSjQEKEI0ctC+SYR1cX4cOxRnbdSwSCDV43B1EEk6dKg51bml0LXRlc3Qtcm9vdDABOQWwWR95hJEYQVX0Wh95hJEYSg8KCXVuaXQtdGVzdBICEAFKMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0egCFAQEBAAA=" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:24 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "fe3eaa9c-8884-4a8f-bb8d-b8f36f08782f", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985459800000000623f1cd5a36c0673", + "x-amz-apigw-id" : "YVfP4Ga6oAMEhIQ=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854598-7672ee36422beb5e475a74e8;Parent=4a137be82b9cf476;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 c9f68a0c96944962731456040c591f26.cloudfront.net (CloudFront), 1.1 566cc276dff9847158a5a9854be4df42.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "uDnL1BN_eaolQyEUu5529K7h8JvhLjkMxXkBWOqyq0XAPB1W5CRrtA==" + } + }, + "uuid" : "317f89cb-83bd-4300-b32b-a6cf5021633a", + "persistent" : true, + "insertionIndex" : 73 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-3ad12e86-ac67-4ee1-b11b-d65857c18915.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-3ad12e86-ac67-4ee1-b11b-d65857c18915.json new file mode 100644 index 0000000..0a52fcc --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-3ad12e86-ac67-4ee1-b11b-d65857c18915.json @@ -0,0 +1,39 @@ +{ + "id" : "3ad12e86-ac67-4ee1-b11b-d65857c18915", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CoQJCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRLGBwolCiNpby5vcGVudGVsZW1ldHJ5LmFudGhyb3BpYy1qYXZhLTIuOBKcBwoQK3D9CeUQ/PlJvwHXDI0aXBIIxKubf7zprooqGWFudGhyb3BpYy5tZXNzYWdlcy5jcmVhdGUwAzlsaFr6dYSRGEHKAQkzdoSRGEozChRnZW5fYWkucmVxdWVzdC5tb2RlbBIbChljbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIySicKGmdlbl9haS5yZXF1ZXN0LnRlbXBlcmF0dXJlEgkhAAAAAAAAAABKHAoNZ2VuX2FpLnN5c3RlbRILCglhbnRocm9waWNKNAoSZ2VuX2FpLnJlc3BvbnNlLmlkEh4KHG1zZ18wMVZDcDFSSFNvZDZ5ak1aZ01odm82M0xKHwoZZ2VuX2FpLnVzYWdlLmlucHV0X3Rva2VucxICGBNKMwomYnJhaW50cnVzdC5tZXRyaWNzLnRpbWVfdG9fZmlyc3RfdG9rZW4SCSEXaQ2ePF7rP0peChZicmFpbnRydXN0Lm91dHB1dF9qc29uEkQKQlt7InJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjoiVGhlIGNhcGl0YWwgb2YgRnJhbmNlIGlzIFBhcmlzLiJ9XUofChlnZW5fYWkucmVxdWVzdC5tYXhfdG9rZW5zEgIYMko0ChVnZW5fYWkub3BlcmF0aW9uLm5hbWUSGwoZYW50aHJvcGljLm1lc3NhZ2VzLmNyZWF0ZUoXCghwcm92aWRlchILCglhbnRocm9waWNKNAoVZ2VuX2FpLnJlc3BvbnNlLm1vZGVsEhsKGWNsYXVkZS0zLTUtaGFpa3UtMjAyNDEwMjJKrgEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhKUAQqRAVt7ImNvbnRlbnQiOiJXaGF0IGlzIHRoZSBjYXBpdGFsIG9mIEZyYW5jZT8iLCJyb2xlIjoidXNlciIsInZhbGlkIjp0cnVlfSx7ImNvbnRlbnQiOiJZb3UgYXJlIGEgaGVscGZ1bCBhc3Npc3RhbnQiLCJyb2xlIjoic3lzdGVtIiwidmFsaWQiOmZhbHNlfV1KMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0SiAKGmdlbl9haS51c2FnZS5vdXRwdXRfdG9rZW5zEgIYCkowCh5nZW5fYWkucmVzcG9uc2UuZmluaXNoX3JlYXNvbnMSDioMCgoKCGVuZF90dXJuUAF6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:12 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "6793cbf7-ff10-431f-9326-ed5f2576a3cc", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985458b0000000068c202040adfe1ee", + "x-amz-apigw-id" : "YVfN6H4EoAMEQaw=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985458b-16d829074e463db66cb5a2df;Parent=3c231cf5bc42b26d;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 c9f68a0c96944962731456040c591f26.cloudfront.net (CloudFront), 1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "x3f1zCLib4aum4sYtd7ZvPK95f1YCmGBbAoNmfNl91qLeqozdzGBSg==" + } + }, + "uuid" : "3ad12e86-ac67-4ee1-b11b-d65857c18915", + "persistent" : true, + "insertionIndex" : 63 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-498ce621-b326-4cdb-9731-cb430db46e82.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-498ce621-b326-4cdb-9731-cb430db46e82.json new file mode 100644 index 0000000..2a30b65 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-498ce621-b326-4cdb-9731-cb430db46e82.json @@ -0,0 +1,39 @@ +{ + "id" : "498ce621-b326-4cdb-9731-cb430db46e82", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CscJCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKJCAowCiBpby5vcGVudGVsZW1ldHJ5Lm9wZW5haS1qYXZhLTEuMRIMMi4xOS4wLWFscGhhEtQHChDRWJlnPuG12cp+5Uyp3UYzEgiQiFzZu6lIwioPQ2hhdCBDb21wbGV0aW9uMAE5m1H/D3iEkRhBOvXPR3iEkRhKJQoUZ2VuX2FpLnJlcXVlc3QubW9kZWwSDQoLZ3B0LTRvLW1pbmlKJwoaZ2VuX2FpLnJlcXVlc3QudGVtcGVyYXR1cmUSCSEAAAAAAAAAAEqPAQoWZ2VuX2FpLm91dHB1dC5tZXNzYWdlcxJ1CnNbeyJyb2xlIjoiYXNzaXN0YW50IiwicGFydHMiOlt7InR5cGUiOiJ0ZXh0IiwiY29udGVudCI6IlRoZSBjYXBpdGFsIG9mIEZyYW5jZSBpcyBQYXJpcy4ifV0sImZpbmlzaF9yZWFzb24iOiJzdG9wIn1dShkKDWdlbl9haS5zeXN0ZW0SCAoGb3BlbmFpSjMKJmJyYWludHJ1c3QubWV0cmljcy50aW1lX3RvX2ZpcnN0X3Rva2VuEgkh9Yl29ENV7D9KPgoSZ2VuX2FpLnJlc3BvbnNlLmlkEigKJmNoYXRjbXBsLUQ2NTNjV2FLcHBjTjRiUUV5MklQQXllZ21zcG5USh8KGWdlbl9haS51c2FnZS5pbnB1dF90b2tlbnMSAhgXSigKHGJyYWludHJ1c3QubWV0YWRhdGEucHJvdmlkZXISCAoGb3BlbmFpSh8KFWdlbl9haS5vcGVyYXRpb24ubmFtZRIGCgRjaGF0SjEKFWdlbl9haS5yZXNwb25zZS5tb2RlbBIYChZncHQtNG8tbWluaS0yMDI0LTA3LTE4SioKGWJyYWludHJ1c3QubWV0YWRhdGEubW9kZWwSDQoLZ3B0LTRvLW1pbmlKMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0SiAKGmdlbl9haS51c2FnZS5vdXRwdXRfdG9rZW5zEgIYB0rHAQoVZ2VuX2FpLmlucHV0Lm1lc3NhZ2VzEq0BCqoBW3sicm9sZSI6InN5c3RlbSIsInBhcnRzIjpbeyJ0eXBlIjoidGV4dCIsImNvbnRlbnQiOiJZb3UgYXJlIGEgaGVscGZ1bCBhc3Npc3RhbnQifV19LHsicm9sZSI6InVzZXIiLCJwYXJ0cyI6W3sidHlwZSI6InRleHQiLCJjb250ZW50IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dfV1KLAoeZ2VuX2FpLnJlc3BvbnNlLmZpbmlzaF9yZWFzb25zEgoqCAoGCgRzdG9wegCFAQEBAAA=" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:21 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "74166524-bad7-4feb-bdd1-786d7d098dc0", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985459400000000530e231b946746f6", + "x-amz-apigw-id" : "YVfPTF7ooAMESOQ=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854594-75145101719d65d35bf11c0b;Parent=2cfe6ec23a41bca7;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 e1832834d17ab65dd955f4e68cc524e6.cloudfront.net (CloudFront), 1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "nMXJA8E4fOUFruoO_ibe-yUwD6AbIm1tYLAb_yvQQ-sOJLCF74WLnQ==" + } + }, + "uuid" : "498ce621-b326-4cdb-9731-cb430db46e82", + "persistent" : true, + "insertionIndex" : 68 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6a99c430-7a23-4cbe-b1fc-7ae8c894c3d8.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6a99c430-7a23-4cbe-b1fc-7ae8c894c3d8.json new file mode 100644 index 0000000..abbc0cd --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6a99c430-7a23-4cbe-b1fc-7ae8c894c3d8.json @@ -0,0 +1,39 @@ +{ + "id" : "6a99c430-7a23-4cbe-b1fc-7ae8c894c3d8", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CuYCCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKoAQoWChRzb21lLWluc3RydW1lbnRhdGlvbhKNAQoQBb8kvKw7EcZxmDgzZpiGFxIIVvd1WcZwA1MqDnVuaXQtdGVzdC1yb290MAE5eOwezHiEkRhBhRYgzHiEkRhKDwoJdW5pdC10ZXN0EgIQAUoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:23 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "ccd9bf78-925b-4a68-97fd-71d3b3adf721", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854597000000004c29fe06e0febdc4", + "x-amz-apigw-id" : "YVfPqG4noAMEMSQ=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854597-249a4c1e7c6cbbec33bfda95;Parent=25677b44aaa23490;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 da32b45f2cc22dc818960285c4e91b66.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "X7keMWe9zuoDvxWAm1EjKEN_k_Gvs7KHTWnSWMJyu4h6sOd4_i4Giw==" + } + }, + "uuid" : "6a99c430-7a23-4cbe-b1fc-7ae8c894c3d8", + "persistent" : true, + "insertionIndex" : 71 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6dfb4f88-d8e6-45f8-a8c1-30cd96753d99.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6dfb4f88-d8e6-45f8-a8c1-30cd96753d99.json new file mode 100644 index 0000000..4def31e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-6dfb4f88-d8e6-45f8-a8c1-30cd96753d99.json @@ -0,0 +1,39 @@ +{ + "id" : "6dfb4f88-d8e6-45f8-a8c1-30cd96753d99", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CuYCCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKoAQoYChZkaXN0cmlidXRlZC10cmFjZS10ZXN0EosBChAawKQJ+r7u8bvujFuJ0g94Egjw2TsW4CY+ySoddGVzdC1kaXN0cmlidXRlZC10cmFjZS1wYXJlbnQwATnsRBPpc4SRGEESFrlUdISRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:04 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "e1cf8b99-b148-45e1-af31-49d6919044be", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985458300000000461218983dd2537b", + "x-amz-apigw-id" : "YVfMqHo0IAMEGcA=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854583-71c24f7b000af73f2b19112d;Parent=657a118b735549ee;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 9257f9c4051fe8bd6cc4a09855b66350.cloudfront.net (CloudFront), 1.1 74e8c76139b8c7f9b11d5e4441c2a7a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "S1NOCjjY25AL6JcpITTdHOjOqeBId3aGmMknwjjI6d39rq2Slz1nkA==" + } + }, + "uuid" : "6dfb4f88-d8e6-45f8-a8c1-30cd96753d99", + "persistent" : true, + "insertionIndex" : 50 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8237cc95-7284-47a1-8b0c-b10c333ef6cf.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8237cc95-7284-47a1-8b0c-b10c333ef6cf.json new file mode 100644 index 0000000..0c617b1 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8237cc95-7284-47a1-8b0c-b10c333ef6cf.json @@ -0,0 +1,39 @@ +{ + "id" : "8237cc95-7284-47a1-8b0c-b10c333ef6cf", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CtMUCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKVEwomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSlgMKEJ6QDhaCUsiDkFwAW5MYCmUSCDRw6gN7lDu4Igg3tTsgOlz/7CoFc2NvcmUwATnRrQQCcISRGEHbdGlNcISRGEo1ChFicmFpbnRydXN0LnNjb3JlcxIgCh57InR5cGVzY3JpcHRfZXhhY3RfbWF0Y2giOjAuMH1KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoycGxheWdyb3VuZF9pZDpjZWVhNzQyMi0zNTA3LTRkMWMtYTVmNy03YWNmNDFkOWZhYzJKigEKGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEmwKansidHlwZSI6InNjb3JlIiwibmFtZSI6Imludm9rZS1qYXZhLXVuaXQtdGVzdC10eXBlc2NyaXB0ZXhhY3RtYXRjaC05ZTQ0LWxhdGVzdCIsImdlbmVyYXRpb24iOiJ0ZXN0LWdlbi0xIn1KOgoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIgCh57InR5cGVzY3JpcHRfZXhhY3RfbWF0Y2giOjAuMH1QAXoAhQEBAQAAEu4CChCekA4WglLIg5BcAFuTGAplEgg3tTsgOlz/7CoEZXZhbDADOcBWZgFwhJEYQdcLbE1whJEYSiwKFWJyYWludHJ1c3QuaW5wdXRfanNvbhITChF7ImlucHV0IjoiYXBwbGUifUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJwbGF5Z3JvdW5kX2lkOmNlZWE3NDIyLTM1MDctNGQxYy1hNWY3LTdhY2Y0MWQ5ZmFjMkpXChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxI5Cjd7InR5cGUiOiJldmFsIiwibmFtZSI6ImV2YWwiLCJnZW5lcmF0aW9uIjoidGVzdC1nZW4tMSJ9SjMKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SGQoXeyJvdXRwdXQiOiJqYXZhLWZydWl0In1KJQoYYnJhaW50cnVzdC5leHBlY3RlZF9qc29uEgkKByJmcnVpdCJQAXoAhQEBAQAAEp8BChA4H6Lwu9TCdIHxvuBRXTnFEggamjvkf4xXOyIIYTBHxPHOkZAqEGN1c3RvbS10YXNrLXNwYW4wATkXt3JNcISRGEFkIXNNcISRGEpJChFicmFpbnRydXN0LnBhcmVudBI0CjJwbGF5Z3JvdW5kX2lkOmNlZWE3NDIyLTM1MDctNGQxYy1hNWY3LTdhY2Y0MWQ5ZmFjMnoAhQEBAQAAEtICChA4H6Lwu9TCdIHxvuBRXTnFEghhMEfE8c6RkCIIr6xpSaO+iZAqBHRhc2swATnTU3FNcISRGEEK6HtNcISRGEotChVicmFpbnRydXN0LmlucHV0X2pzb24SFAoSeyJpbnB1dCI6ImNhcnJvdCJ9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMnBsYXlncm91bmRfaWQ6Y2VlYTc0MjItMzUwNy00ZDFjLWE1ZjctN2FjZjQxZDlmYWMySlcKGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEjkKN3sidHlwZSI6InRhc2siLCJuYW1lIjoidGFzayIsImdlbmVyYXRpb24iOiJ0ZXN0LWdlbi0xIn1KMwoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIZChd7Im91dHB1dCI6ImphdmEtZnJ1aXQifVABegCFAQEBAAAS2gIKEDgfovC71MJ0gfG+4FFdOcUSCIJIHayuAyowIgivrGlJo76JkCoFc2NvcmUwATnh54FNcISRGEEOnoVNcISRGEosChFicmFpbnRydXN0LnNjb3JlcxIXChV7InNpbXBsZV9zY29yZXIiOjAuN31KSQoRYnJhaW50cnVzdC5wYXJlbnQSNAoycGxheWdyb3VuZF9pZDpjZWVhNzQyMi0zNTA3LTRkMWMtYTVmNy03YWNmNDFkOWZhYzJKYQoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSQwpBeyJ0eXBlIjoic2NvcmUiLCJuYW1lIjoic2ltcGxlX3Njb3JlciIsImdlbmVyYXRpb24iOiJ0ZXN0LWdlbi0xIn1KMQoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIXChV7InNpbXBsZV9zY29yZXIiOjAuN31QAXoAhQEBAQAAEpYDChA4H6Lwu9TCdIHxvuBRXTnFEghKHhrPm98rHSIIr6xpSaO+iZAqBXNjb3JlMAE5YZOGTXCEkRhBoWkninCEkRhKNQoRYnJhaW50cnVzdC5zY29yZXMSIAoeeyJ0eXBlc2NyaXB0X2V4YWN0X21hdGNoIjowLjB9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMnBsYXlncm91bmRfaWQ6Y2VlYTc0MjItMzUwNy00ZDFjLWE1ZjctN2FjZjQxZDlmYWMySooBChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxJsCmp7InR5cGUiOiJzY29yZSIsIm5hbWUiOiJpbnZva2UtamF2YS11bml0LXRlc3QtdHlwZXNjcmlwdGV4YWN0bWF0Y2gtOWU0NC1sYXRlc3QiLCJnZW5lcmF0aW9uIjoidGVzdC1nZW4tMSJ9SjoKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SIAoeeyJ0eXBlc2NyaXB0X2V4YWN0X21hdGNoIjowLjB9UAF6AIUBAQEAABLzAgoQOB+i8LvUwnSB8b7gUV05xRIIr6xpSaO+iZAqBGV2YWwwAzkKaG9NcISRGEGtEymKcISRGEotChVicmFpbnRydXN0LmlucHV0X2pzb24SFAoSeyJpbnB1dCI6ImNhcnJvdCJ9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMnBsYXlncm91bmRfaWQ6Y2VlYTc0MjItMzUwNy00ZDFjLWE1ZjctN2FjZjQxZDlmYWMySlcKGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEjkKN3sidHlwZSI6ImV2YWwiLCJuYW1lIjoiZXZhbCIsImdlbmVyYXRpb24iOiJ0ZXN0LWdlbi0xIn1KMwoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhIZChd7Im91dHB1dCI6ImphdmEtZnJ1aXQifUopChhicmFpbnRydXN0LmV4cGVjdGVkX2pzb24SDQoLInZlZ2V0YWJsZSJQAXoAhQEBAQAA" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:47 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "42561043-48a3-4ee7-ac9a-bf5daaae5a55", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985457300000000546dc9ca27aa87a6", + "x-amz-apigw-id" : "YVfKHF46IAMEA1Q=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854573-7728aa993547716203831198;Parent=46304c729b64d146;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2582fcc2e5a8f93a556ac3ef26738abc.cloudfront.net (CloudFront), 1.1 a53bab1af200813b8f27e3c0a28b4964.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "-lwE3cPG61Ryr5TKx98hB4sjy2AtozmwuHoCGWYj-nzg6i296O-0KA==" + } + }, + "uuid" : "8237cc95-7284-47a1-8b0c-b10c333ef6cf", + "persistent" : true, + "insertionIndex" : 12 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8d7628e8-daa4-442c-9d0e-dd868712d2e2.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8d7628e8-daa4-442c-9d0e-dd868712d2e2.json new file mode 100644 index 0000000..fc35378 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-8d7628e8-daa4-442c-9d0e-dd868712d2e2.json @@ -0,0 +1,39 @@ +{ + "id" : "8d7628e8-daa4-442c-9d0e-dd868712d2e2", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CscJCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKJCAowCiBpby5vcGVudGVsZW1ldHJ5Lm9wZW5haS1qYXZhLTEuMRIMMi4xOS4wLWFscGhhEtQHChBjtmOEcx7Ke1RJg98wj/XKEgit/P/gF4YpcCoPQ2hhdCBDb21wbGV0aW9uMAE5ApwvYXiEkRhB2+dAhniEkRhKJQoUZ2VuX2FpLnJlcXVlc3QubW9kZWwSDQoLZ3B0LTRvLW1pbmlKJwoaZ2VuX2FpLnJlcXVlc3QudGVtcGVyYXR1cmUSCSEAAAAAAAAAAEqPAQoWZ2VuX2FpLm91dHB1dC5tZXNzYWdlcxJ1CnNbeyJyb2xlIjoiYXNzaXN0YW50IiwicGFydHMiOlt7InR5cGUiOiJ0ZXh0IiwiY29udGVudCI6IlRoZSBjYXBpdGFsIG9mIEZyYW5jZSBpcyBQYXJpcy4ifV0sImZpbmlzaF9yZWFzb24iOiJzdG9wIn1dShkKDWdlbl9haS5zeXN0ZW0SCAoGb3BlbmFpSjMKJmJyYWludHJ1c3QubWV0cmljcy50aW1lX3RvX2ZpcnN0X3Rva2VuEgkhQ9mlVxTg4z9KPgoSZ2VuX2FpLnJlc3BvbnNlLmlkEigKJmNoYXRjbXBsLUQ2NTNkR0Y5RldMakdhWG9FRms1ZlRUVHRoRFlRSh8KGWdlbl9haS51c2FnZS5pbnB1dF90b2tlbnMSAhgXSigKHGJyYWludHJ1c3QubWV0YWRhdGEucHJvdmlkZXISCAoGb3BlbmFpSh8KFWdlbl9haS5vcGVyYXRpb24ubmFtZRIGCgRjaGF0SjEKFWdlbl9haS5yZXNwb25zZS5tb2RlbBIYChZncHQtNG8tbWluaS0yMDI0LTA3LTE4SioKGWJyYWludHJ1c3QubWV0YWRhdGEubW9kZWwSDQoLZ3B0LTRvLW1pbmlKMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0SiAKGmdlbl9haS51c2FnZS5vdXRwdXRfdG9rZW5zEgIYB0rHAQoVZ2VuX2FpLmlucHV0Lm1lc3NhZ2VzEq0BCqoBW3sicm9sZSI6InN5c3RlbSIsInBhcnRzIjpbeyJ0eXBlIjoidGV4dCIsImNvbnRlbnQiOiJZb3UgYXJlIGEgaGVscGZ1bCBhc3Npc3RhbnQifV19LHsicm9sZSI6InVzZXIiLCJwYXJ0cyI6W3sidHlwZSI6InRleHQiLCJjb250ZW50IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dfV1KLAoeZ2VuX2FpLnJlc3BvbnNlLmZpbmlzaF9yZWFzb25zEgoqCAoGCgRzdG9wegCFAQEBAAA=" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:22 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "f91ee624-1fdf-4e91-9557-28957556171f", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854595000000007cbc837f0c5bfa26", + "x-amz-apigw-id" : "YVfPeEDjIAMEvGw=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854595-6593fb056e2898541c198e1c;Parent=782e4068d28b522c;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 d525041695bdb6325f78ebba5c11b8a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "LQou4xBwSf9YMYjP-k6rK5CAu3Y3VUkrsRL4ETovz9WkjIPO6gIYhA==" + } + }, + "uuid" : "8d7628e8-daa4-442c-9d0e-dd868712d2e2", + "persistent" : true, + "insertionIndex" : 70 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-c0d141c9-3ba2-4143-91d5-8eabe08f5d6d.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-c0d141c9-3ba2-4143-91d5-8eabe08f5d6d.json new file mode 100644 index 0000000..86da1c2 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-c0d141c9-3ba2-4143-91d5-8eabe08f5d6d.json @@ -0,0 +1,39 @@ +{ + "id" : "c0d141c9-3ba2-4143-91d5-8eabe08f5d6d", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CtsCCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRKdAQoLCglteSB0cmFjZXISjQEKELYY6SntGst9Asl3UfbLDt0SCCg5dROEryEEKg51bml0LXRlc3Qtcm9vdDABOSVS+vp4hJEYQVYp+/p4hJEYSg8KCXVuaXQtdGVzdBICEAFKMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0egCFAQEBAAA=" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:23 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "d9fd30c4-46a5-4021-add2-6de1ea23afb6", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985459700000000551bf19026655cdc", + "x-amz-apigw-id" : "YVfPxG4IoAMEH-Q=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854597-04699b611ec06d3a58cf97d0;Parent=7a7d63649a480228;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 ec62626c4e205f1980b4ed65142b10d8.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "Ignp5epMP3laNMD-mr9Vu6EqGDrHThswfXC5L_IonNoglGi-drhySg==" + } + }, + "uuid" : "c0d141c9-3ba2-4143-91d5-8eabe08f5d6d", + "persistent" : true, + "insertionIndex" : 72 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-dcf0fc8b-ae81-4c56-b83e-60377e43649e.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-dcf0fc8b-ae81-4c56-b83e-60377e43649e.json new file mode 100644 index 0000000..77ea726 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-dcf0fc8b-ae81-4c56-b83e-60377e43649e.json @@ -0,0 +1,39 @@ +{ + "id" : "dcf0fc8b-ae81-4c56-b83e-60377e43649e", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CrkICrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRL7BgomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSnwEKEJ6QDhaCUsiDkFwAW5MYCmUSCFTPQCHYMTWyIgi/J0XnThnJCCoQY3VzdG9tLXRhc2stc3BhbjABOQk7ngFwhJEYQY32ngFwhJEYSkkKEWJyYWludHJ1c3QucGFyZW50EjQKMnBsYXlncm91bmRfaWQ6Y2VlYTc0MjItMzUwNy00ZDFjLWE1ZjctN2FjZjQxZDlmYWMyegCFAQEBAAAS0QIKEJ6QDhaCUsiDkFwAW5MYCmUSCL8nRedOGckIIgg3tTsgOlz/7CoEdGFzazABOVsnlQFwhJEYQQ862AFwhJEYSiwKFWJyYWludHJ1c3QuaW5wdXRfanNvbhITChF7ImlucHV0IjoiYXBwbGUifUpJChFicmFpbnRydXN0LnBhcmVudBI0CjJwbGF5Z3JvdW5kX2lkOmNlZWE3NDIyLTM1MDctNGQxYy1hNWY3LTdhY2Y0MWQ5ZmFjMkpXChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxI5Cjd7InR5cGUiOiJ0YXNrIiwibmFtZSI6InRhc2siLCJnZW5lcmF0aW9uIjoidGVzdC1nZW4tMSJ9SjMKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SGQoXeyJvdXRwdXQiOiJqYXZhLWZydWl0In1QAXoAhQEBAQAAEtoCChCekA4WglLIg5BcAFuTGAplEghFyyOKp5/efyIIN7U7IDpc/+wqBXNjb3JlMAE5aZfcAXCEkRhBts4CAnCEkRhKLAoRYnJhaW50cnVzdC5zY29yZXMSFwoVeyJzaW1wbGVfc2NvcmVyIjowLjd9SkkKEWJyYWludHJ1c3QucGFyZW50EjQKMnBsYXlncm91bmRfaWQ6Y2VlYTc0MjItMzUwNy00ZDFjLWE1ZjctN2FjZjQxZDlmYWMySmEKGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEkMKQXsidHlwZSI6InNjb3JlIiwibmFtZSI6InNpbXBsZV9zY29yZXIiLCJnZW5lcmF0aW9uIjoidGVzdC1nZW4tMSJ9SjEKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SFwoVeyJzaW1wbGVfc2NvcmVyIjowLjd9UAF6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:46 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "6e9a519c-47f1-44a4-95fd-6b318e0167e2", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854572000000004e33388982f6d140", + "x-amz-apigw-id" : "YVfJ-HdTIAMEHAg=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854572-255fd1eb09fdedbb69e39cb2;Parent=0370ee40826fe299;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "5pm7NP4q6RK4ajW-rwWcnJwRa4L9NEfWzHFWGIKrzYRrojMTSpEkhA==" + } + }, + "uuid" : "dcf0fc8b-ae81-4c56-b83e-60377e43649e", + "persistent" : true, + "insertionIndex" : 10 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-e39b43cd-a997-476f-85ca-20de93e24a00.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-e39b43cd-a997-476f-85ca-20de93e24a00.json new file mode 100644 index 0000000..009619c --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-e39b43cd-a997-476f-85ca-20de93e24a00.json @@ -0,0 +1,39 @@ +{ + "id" : "e39b43cd-a997-476f-85ca-20de93e24a00", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CowOCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRL2BAomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSywQKEC/VUwdQmT1SViX/jnucYy8SCJCQqO57ogK6Kg9DaGF0IENvbXBsZXRpb24wAznUP80Dd4SRGEE1a9Msd4SRGEpXChVicmFpbnRydXN0LmlucHV0X2pzb24SPgo8W3sicm9sZSI6InVzZXIiLCJjb250ZW50IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dSm8KEmJyYWludHJ1c3QubWV0cmljcxJZCld7ImNvbXBsZXRpb25fdG9rZW5zIjo3LCJwcm9tcHRfdG9rZW5zIjoxNCwidG9rZW5zIjoyMSwidGltZV90b19maXJzdF90b2tlbiI6MC42NTk1NDE1NX1KMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0Si4KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhAKDnsidHlwZSI6ImxsbSJ9SosBChZicmFpbnRydXN0Lm91dHB1dF9qc29uEnEKb1t7ImluZGV4IjowLCJmaW5pc2hfcmVhc29uIjoic3RvcCIsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJUaGUgY2FwaXRhbCBvZiBGcmFuY2UgaXMgUGFyaXMuIn19XUpEChNicmFpbnRydXN0Lm1ldGFkYXRhEi0KK3sicHJvdmlkZXIiOiJvcGVuYWkiLCJtb2RlbCI6ImdwdC00by1taW5pIn16AIUBAQEAABLVBwoNCgt0ZXN0LXRyYWNlchKHAQoQL9VTB1CZPVJWJf+Oe5xjLxIIB+BAsjgudvUiCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTEwATmuOzQsd4SRGEGV/TQsd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxIIEuBW2EpFSvkiCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTIwATn6CTssd4SRGEE1ZTssd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxIIIf0JI+FZkUQiCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTMwATkfZj8sd4SRGEFqnz8sd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxII79PV5xIQu0oiCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTQwATnAgUUsd4SRGEEBzkUsd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxII9Jxo9kc36o8iCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTUwATmRxEksd4SRGEHl+0ksd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxIIhmuAdjeWIGEiCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTYwATngxlQsd4SRGEE1yFUsd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAABKHAQoQL9VTB1CZPVJWJf+Oe5xjLxIIr/TPtNOiF2giCJCQqO57ogK6Kg9jYWxsYmFjay1zcGFuLTcwATl9DV0sd4SRGEEeUF0sd4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:20 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "4e09ab09-1609-4f34-bd74-1ed3475ac6a7", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854594000000006daa259fcae4d34e", + "x-amz-apigw-id" : "YVfPPELBoAMEMww=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854594-58e729295a081e42460a2b1c;Parent=4b5b1faf5b697fe9;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 e1832834d17ab65dd955f4e68cc524e6.cloudfront.net (CloudFront), 1.1 d525041695bdb6325f78ebba5c11b8a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "GZgjvBgkorI-UtuYrC2t-Sx88fgyNakbqgMaAsuBT-SQEkrpDswWsw==" + } + }, + "uuid" : "e39b43cd-a997-476f-85ca-20de93e24a00", + "persistent" : true, + "insertionIndex" : 67 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f04e3407-4ce8-4d8f-8467-fab9059548b9.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f04e3407-4ce8-4d8f-8467-fab9059548b9.json new file mode 100644 index 0000000..460b50c --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f04e3407-4ce8-4d8f-8467-fab9059548b9.json @@ -0,0 +1,39 @@ +{ + "id" : "f04e3407-4ce8-4d8f-8467-fab9059548b9", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CpQZCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRLbEQomCg9icmFpbnRydXN0LWphdmESEzAuMi4zLWE0OTgxZjEtRElSVFkSjwcKEIMt/VrHok0e1tjN6yX8dbwSCKisjidpy4XnIgj8jKMK1HJIQCoPQ2hhdCBDb21wbGV0aW9uMAM5obw1MXeEkRhBMas/gHeEkRhKZQoVYnJhaW50cnVzdC5pbnB1dF9qc29uEkwKSlt7InJvbGUiOiJ1c2VyIiwiY29udGVudCI6ImlzIGl0IGhvdHRlciBpbiBQYXJpcyBvciBOZXcgWW9yayByaWdodCBub3c/In1dSnIKEmJyYWludHJ1c3QubWV0cmljcxJcClp7ImNvbXBsZXRpb25fdG9rZW5zIjo0NywicHJvbXB0X3Rva2VucyI6ODQsInRva2VucyI6MTMxLCJ0aW1lX3RvX2ZpcnN0X3Rva2VuIjoxLjMyNDg3MjAyMn1KMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0Si4KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhAKDnsidHlwZSI6ImxsbSJ9SrQDChZicmFpbnRydXN0Lm91dHB1dF9qc29uEpkDCpYDW3siaW5kZXgiOjAsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOm51bGwsInRvb2xfY2FsbHMiOlt7ImlkIjoiY2FsbF9ZemJBQXpkcjR5U3hlcmFuNUVDMXRuTEEiLCJ0eXBlIjoiZnVuY3Rpb24iLCJmdW5jdGlvbiI6eyJuYW1lIjoiZ2V0V2VhdGhlciIsImFyZ3VtZW50cyI6IntcImFyZzBcIjogXCJQYXJpc1wifSJ9fSx7ImlkIjoiY2FsbF9wVFJBTjJoM2ZPQ21DdjA3SzRXWE45VGgiLCJ0eXBlIjoiZnVuY3Rpb24iLCJmdW5jdGlvbiI6eyJuYW1lIjoiZ2V0V2VhdGhlciIsImFyZ3VtZW50cyI6IntcImFyZzBcIjogXCJOZXcgWW9ya1wifSJ9fV0sInJlZnVzYWwiOm51bGwsImFubm90YXRpb25zIjpbXX0sImxvZ3Byb2JzIjpudWxsLCJmaW5pc2hfcmVhc29uIjoidG9vbF9jYWxscyJ9XUpEChNicmFpbnRydXN0Lm1ldGFkYXRhEi0KK3sicHJvdmlkZXIiOiJvcGVuYWkiLCJtb2RlbCI6ImdwdC00by1taW5pIn16AIUBAQEAABKeCgoQgy39WseiTR7W2M3rJfx1vBIIPUaMj//sb8EiCPyMowrUckhAKg9DaGF0IENvbXBsZXRpb24wAzk5RKOBd4SRGEEuq0+9d4SRGEqPBQoVYnJhaW50cnVzdC5pbnB1dF9qc29uEvUECvIEW3sicm9sZSI6InVzZXIiLCJjb250ZW50IjoiaXMgaXQgaG90dGVyIGluIFBhcmlzIG9yIE5ldyBZb3JrIHJpZ2h0IG5vdz8ifSx7InJvbGUiOiJhc3Npc3RhbnQiLCJ0b29sX2NhbGxzIjpbeyJpZCI6ImNhbGxfWXpiQUF6ZHI0eVN4ZXJhbjVFQzF0bkxBIiwidHlwZSI6ImZ1bmN0aW9uIiwiZnVuY3Rpb24iOnsibmFtZSI6ImdldFdlYXRoZXIiLCJhcmd1bWVudHMiOiJ7XCJhcmcwXCI6IFwiUGFyaXNcIn0ifX0seyJpZCI6ImNhbGxfcFRSQU4yaDNmT0NtQ3YwN0s0V1hOOVRoIiwidHlwZSI6ImZ1bmN0aW9uIiwiZnVuY3Rpb24iOnsibmFtZSI6ImdldFdlYXRoZXIiLCJhcmd1bWVudHMiOiJ7XCJhcmcwXCI6IFwiTmV3IFlvcmtcIn0ifX1dfSx7InJvbGUiOiJ0b29sIiwidG9vbF9jYWxsX2lkIjoiY2FsbF9ZemJBQXpkcjR5U3hlcmFuNUVDMXRuTEEiLCJjb250ZW50IjoiVGhlIHdlYXRoZXIgaW4gUGFyaXMgaXMgc3Vubnkgd2l0aCA3MsKwRiB0ZW1wZXJhdHVyZS4ifSx7InJvbGUiOiJ0b29sIiwidG9vbF9jYWxsX2lkIjoiY2FsbF9wVFJBTjJoM2ZPQ21DdjA3SzRXWE45VGgiLCJjb250ZW50IjoiVGhlIHdlYXRoZXIgaW4gTmV3IFlvcmsgaXMgc3Vubnkgd2l0aCA3MsKwRiB0ZW1wZXJhdHVyZS4ifV1KcwoSYnJhaW50cnVzdC5tZXRyaWNzEl0KW3siY29tcGxldGlvbl90b2tlbnMiOjI3LCJwcm9tcHRfdG9rZW5zIjoxNzcsInRva2VucyI6MjA0LCJ0aW1lX3RvX2ZpcnN0X3Rva2VuIjoxLjAwMDEzNTIzNn1KMgoRYnJhaW50cnVzdC5wYXJlbnQSHQobcHJvamVjdF9uYW1lOmphdmEtdW5pdC10ZXN0Si4KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhAKDnsidHlwZSI6ImxsbSJ9SpcCChZicmFpbnRydXN0Lm91dHB1dF9qc29uEvwBCvkBW3siaW5kZXgiOjAsIm1lc3NhZ2UiOnsicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOiJUaGUgY3VycmVudCB0ZW1wZXJhdHVyZSBpcyB0aGUgc2FtZSBpbiBib3RoIFBhcmlzIGFuZCBOZXcgWW9yaywgYXQgNzLCsEYsIGFuZCBib3RoIGNpdGllcyBhcmUgZXhwZXJpZW5jaW5nIHN1bm55IHdlYXRoZXIuIiwicmVmdXNhbCI6bnVsbCwiYW5ub3RhdGlvbnMiOltdfSwibG9ncHJvYnMiOm51bGwsImZpbmlzaF9yZWFzb24iOiJzdG9wIn1dSkQKE2JyYWludHJ1c3QubWV0YWRhdGESLQoreyJwcm92aWRlciI6Im9wZW5haSIsIm1vZGVsIjoiZ3B0LTRvLW1pbmkifXoAhQEBAQAAEvgFChgKFmJyYWludHJ1c3QtbGFuZ2NoYWluNGoSrwIKEIMt/VrHok0e1tjN6yX8dbwSCNFK4OSTbjSNIgj8jKMK1HJIQCoKZ2V0V2VhdGhlcjABOZ3FioB3hJEYQTlaLIF3hJEYSiwKFWJyYWludHJ1c3QuaW5wdXRfanNvbhITChF7ImFyZzAiOiAiUGFyaXMifUoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3RKTAoRYnJhaW50cnVzdC5vdXRwdXQSNwo1VGhlIHdlYXRoZXIgaW4gUGFyaXMgaXMgc3Vubnkgd2l0aCA3MsKwRiB0ZW1wZXJhdHVyZS5KLwoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEQoPeyJ0eXBlIjoidG9vbCJ9egCFAQEBAAAStQIKEIMt/VrHok0e1tjN6yX8dbwSCJnIWSxFvMRIIgj8jKMK1HJIQCoKZ2V0V2VhdGhlcjABOZmKjYB3hJEYQVZdLIF3hJEYSi8KFWJyYWludHJ1c3QuaW5wdXRfanNvbhIWChR7ImFyZzAiOiAiTmV3IFlvcmsifUoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3RKTwoRYnJhaW50cnVzdC5vdXRwdXQSOgo4VGhlIHdlYXRoZXIgaW4gTmV3IFlvcmsgaXMgc3Vubnkgd2l0aCA3MsKwRiB0ZW1wZXJhdHVyZS5KLwoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEQoPeyJ0eXBlIjoidG9vbCJ9egCFAQEBAAAScgoQgy39WseiTR7W2M3rJfx1vBII/IyjCtRySEAqBGNoYXQwATlSljgvd4SRGEHwyoS9d4SRGEoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3R6AIUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:21 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "cf9503bb-0c2b-49df-8199-e160e653795a", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "69854595000000001f479babbf65c0b6", + "x-amz-apigw-id" : "YVfPWFkroAMEXug=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854595-2e90e1c433a269b723a98936;Parent=480ddfe796445a67;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 21c7c4234f218bb5110262cbbf01f870.cloudfront.net (CloudFront), 1.1 d9d466ed70d93f34739969f91577ec74.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "uYlmJPZU0I2r1Rs88oshjmnRpc5t4o_0RjOweTmaOaJM9GvfcxatTg==" + } + }, + "uuid" : "f04e3407-4ce8-4d8f-8467-fab9059548b9", + "persistent" : true, + "insertionIndex" : 69 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f130c8f8-0e36-413a-a18d-97d7dfe47c8e.json b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f130c8f8-0e36-413a-a18d-97d7dfe47c8e.json new file mode 100644 index 0000000..bc8dd03 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/otel_v1_traces-f130c8f8-0e36-413a-a18d-97d7dfe47c8e.json @@ -0,0 +1,39 @@ +{ + "id" : "f130c8f8-0e36-413a-a18d-97d7dfe47c8e", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CoAKCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4yLjMtYTQ5ODFmMS1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTQuMRLCCAojCiFpby5vcGVudGVsZW1ldHJ5LmdlbWluaS1qYXZhLTEuMjASmggKEHPJX3KOCu85JkzoJ+v0C3ESCHAKAKA7AG+9KhBnZW5lcmF0ZV9jb250ZW50MAM59bTZvXaEkRhB9ngR33aEkRhKwQEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhKnAQqkAXsiY29udGVudHMiOlt7InBhcnRzIjpbeyJ0ZXh0IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dLCJyb2xlIjoidXNlciJ9XSwibW9kZWwiOiJnZW1pbmktMi4wLWZsYXNoLWxpdGUiLCJjb25maWciOnsidGVtcGVyYXR1cmUiOjAuMCwibWF4T3V0cHV0VG9rZW5zIjo1MH19Sk0KEmJyYWludHJ1c3QubWV0cmljcxI3CjV7ImNvbXBsZXRpb25fdG9rZW5zIjo5LCJwcm9tcHRfdG9rZW5zIjo3LCJ0b2tlbnMiOjE2fUoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3RKLgoaYnJhaW50cnVzdC5zcGFuX2F0dHJpYnV0ZXMSEAoOeyJ0eXBlIjoibGxtIn1K3QMKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SwgMKvwN7ImNhbmRpZGF0ZXMiOlt7ImNvbnRlbnQiOnsicGFydHMiOlt7InRleHQiOiJUaGUgY2FwaXRhbCBvZiBGcmFuY2UgaXMgKipQYXJpcyoqLlxuIn1dLCJyb2xlIjoibW9kZWwifSwiZmluaXNoUmVhc29uIjoiU1RPUCIsImF2Z0xvZ3Byb2JzIjotMC4wMTc4NDEzNjU2MDIyODEzNTh9XSwidXNhZ2VNZXRhZGF0YSI6eyJwcm9tcHRUb2tlbkNvdW50Ijo3LCJjYW5kaWRhdGVzVG9rZW5Db3VudCI6OSwidG90YWxUb2tlbkNvdW50IjoxNiwicHJvbXB0VG9rZW5zRGV0YWlscyI6W3sibW9kYWxpdHkiOiJURVhUIiwidG9rZW5Db3VudCI6N31dLCJjYW5kaWRhdGVzVG9rZW5zRGV0YWlscyI6W3sibW9kYWxpdHkiOiJURVhUIiwidG9rZW5Db3VudCI6OX1dfSwibW9kZWxWZXJzaW9uIjoiZ2VtaW5pLTIuMC1mbGFzaC1saXRlIiwicmVzcG9uc2VJZCI6ImprV0ZhZlBzRGF1LXF0c1A2ZFdYNFFrIn1KdQoTYnJhaW50cnVzdC5tZXRhZGF0YRJeClx7InByb3ZpZGVyIjoiZ2VtaW5pIiwidGVtcGVyYXR1cmUiOjAuMCwibW9kZWwiOiJnZW1pbmktMi4wLWZsYXNoLWxpdGUiLCJtYXhPdXRwdXRUb2tlbnMiOjUwfXoCGAGFAQEBAAA=" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "Content-Type" : "application/x-protobuf", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:14 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "909fe1c1-7a6c-4d46-aad1-8407fbe1a5e3", + "x-amzn-Remapped-content-length" : "0", + "x-bt-internal-trace-id" : "6985458e0000000034fd89d053455290", + "x-amz-apigw-id" : "YVfOXHU2IAMEgsA=", + "vary" : "Origin", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985458e-3880fc662d78e6a17cd65648;Parent=7af4e0bfbee63278;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 dc8ab0490cc3f7679073e847e3aabb66.cloudfront.net (CloudFront), 1.1 566cc276dff9847158a5a9854be4df42.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "ScXTsPNGbdWP5y_Iu-1ymn8v8K8bK-4FZ8BlUVC6Ohpuc66FdVWlxA==" + } + }, + "uuid" : "f130c8f8-0e36-413a-a18d-97d7dfe47c8e", + "persistent" : true, + "insertionIndex" : 65 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json new file mode 100644 index 0000000..f66eabe --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json @@ -0,0 +1,45 @@ +{ + "id" : "0628d775-6f14-4d10-bbe7-ac316d834e1f", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"6ae68365-7620-4630-921b-bac416634fc8\",\"name\":\"unit-test-eval\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-0628d775-6f14-4d10-bbe7-ac316d834e1f.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:55 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "2fa3d2a3-27d2-471e-821d-2120d8119d52", + "x-amzn-Remapped-content-length" : "378", + "x-bt-internal-trace-id" : "6985457b0000000031bdc537d3806527", + "x-amz-apigw-id" : "YVfLWHZmoAMEioQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"17a-Fy9g1co4o48Xs/Tz30vJvKcEEq0\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457b-23d4c77654b721023174b97b;Parent=19a8dcf05183c5aa;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 ddea1c07643e5e0bfceb34480eebdc52.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "l_aCUZzX2yBiQmOxRZvqVqHXUHJ73sytSGVFn3Jkpr0k0dGe0qGtrw==" + } + }, + "uuid" : "0628d775-6f14-4d10-bbe7-ac316d834e1f", + "persistent" : true, + "scenarioName" : "scenario-5-v1-experiment", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-5-v1-experiment-2", + "insertionIndex" : 30 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json new file mode 100644 index 0000000..c511ce0 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json @@ -0,0 +1,42 @@ +{ + "id" : "9a5483ae-8d2e-43e4-a762-e57ccb95c527", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"6ae68365-7620-4630-921b-bac416634fc8\",\"name\":\"unit-test-eval-tags-metadata\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-9a5483ae-8d2e-43e4-a762-e57ccb95c527.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:49 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "464a35c5-15e6-41d3-96a5-4385cec37384", + "x-amzn-Remapped-content-length" : "392", + "x-bt-internal-trace-id" : "698545750000000067c744e005381b1b", + "x-amz-apigw-id" : "YVfKaHQgoAMEryA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"188-DE7ucipNOc32PdLY5D8S7u+Usdg\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854575-7148df9b11f066c507e5a3b9;Parent=78a6227a29b090c3;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 c9f68a0c96944962731456040c591f26.cloudfront.net (CloudFront), 1.1 82fa7f20ab5a12301da8e01f9493e222.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "u-mRz-JgIOXESbqX_R-pulvgFBt7wP8mScC3pJX98RMrnCRacqYj1g==" + } + }, + "uuid" : "9a5483ae-8d2e-43e4-a762-e57ccb95c527", + "persistent" : true, + "insertionIndex" : 16 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json new file mode 100644 index 0000000..05ebadd --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json @@ -0,0 +1,44 @@ +{ + "id" : "a82997e0-2473-49b6-8839-4e570e7748ab", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"6ae68365-7620-4630-921b-bac416634fc8\",\"name\":\"unit-test-eval\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-a82997e0-2473-49b6-8839-4e570e7748ab.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:57 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "2da5ec9c-9e17-46e9-8456-95848e31b020", + "x-amzn-Remapped-content-length" : "378", + "x-bt-internal-trace-id" : "6985457d0000000076e19b99c8beaf8f", + "x-amz-apigw-id" : "YVfLmEs3IAMEAhg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"17a-Fy9g1co4o48Xs/Tz30vJvKcEEq0\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457d-2e9a27eb7a090b9f0bbdd3c8;Parent=66e46b7360fd5e4f;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "dfrX_gwZM58deLTcXYVHQ7Mhw5c7GJoHnhxlZZKlcwIKsOfI-nLQtA==" + } + }, + "uuid" : "a82997e0-2473-49b6-8839-4e570e7748ab", + "persistent" : true, + "scenarioName" : "scenario-5-v1-experiment", + "requiredScenarioState" : "scenario-5-v1-experiment-2", + "insertionIndex" : 34 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json new file mode 100644 index 0000000..c5df14f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json @@ -0,0 +1,42 @@ +{ + "id" : "e6648d2b-f25a-4409-9169-3abc157cc652", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"6ae68365-7620-4630-921b-bac416634fc8\",\"name\":\"unit-test-eval-origin\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-e6648d2b-f25a-4409-9169-3abc157cc652.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:52 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "0bd6e0d5-8aab-4d79-b686-abb3d15f3136", + "x-amzn-Remapped-content-length" : "385", + "x-bt-internal-trace-id" : "69854578000000002a6d971155851f7f", + "x-amz-apigw-id" : "YVfK2GD8oAMEgeA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"181-3mwEst50AR1pBk7kGLRn4RRJDos\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854578-752ef2116262157d5da60376;Parent=798773b2ed7690bf;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 21c7c4234f218bb5110262cbbf01f870.cloudfront.net (CloudFront), 1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "-IcGYkwd4acml5SwjykM5h1WJ4-t4t9261faQHQGvydNctLinEeqpA==" + } + }, + "uuid" : "e6648d2b-f25a-4409-9169-3abc157cc652", + "persistent" : true, + "insertionIndex" : 23 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json new file mode 100644 index 0000000..0e05710 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json @@ -0,0 +1,34 @@ +{ + "id" : "267ac1d1-7ec6-41f8-8be3-dbc6b39faed4", + "name" : "v1_function", + "request" : { + "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function-267ac1d1-7ec6-41f8-8be3-dbc6b39faed4.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:59 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "9eef3f0b-a582-496b-866a-d44f487ee06a", + "x-amzn-Remapped-content-length" : "913", + "x-bt-internal-trace-id" : "6985457f000000001a9aa43b9a2e9fda", + "x-amz-apigw-id" : "YVfMBGIWoAMEbVw=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"391-iVW1u69I859gEDeC7XzXAO2kbf4\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457f-49711e29569fe4a16f9747c1;Parent=5ca6f082db5079fe;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "rXR2xiMN2ALCWFNIW67zWx-cQgL6OXPdvsSy9yESFl1ss88A-dcQlg==" + } + }, + "uuid" : "267ac1d1-7ec6-41f8-8be3-dbc6b39faed4", + "persistent" : true, + "scenarioName" : "scenario-6-v1-function", + "requiredScenarioState" : "scenario-6-v1-function-2", + "insertionIndex" : 40 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-32c90375-557c-4ef8-9263-383a8386366a.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-32c90375-557c-4ef8-9263-383a8386366a.json deleted file mode 100644 index a76b203..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function-32c90375-557c-4ef8-9263-383a8386366a.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id" : "32c90375-557c-4ef8-9263-383a8386366a", - "name" : "v1_function", - "request" : { - "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test&version=485dbf64e486ab3a", - "method" : "GET" - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function-32c90375-557c-4ef8-9263-383a8386366a.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:10 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "91343f02-6a2d-49e1-9f20-1f8451a31cff", - "x-amzn-Remapped-content-length" : "913", - "x-bt-internal-trace-id" : "697308ca000000002493f4d436c47279", - "x-amz-apigw-id" : "Xn5PpExmIAMElFA=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"391-e2sQ3WLqbgDUML3AlteZzSuvEIE\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308ca-5fd10a1b6da42bcc783c927e;Parent=3e4f51cc37168d91;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 0c387c49a68a0638a07ea76c5853a28e.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "M9QwhiYeDHthLfHd0s3JH-VI1WMdF0La0k4wOdV9QD9t7oV7534xNg==" - } - }, - "uuid" : "32c90375-557c-4ef8-9263-383a8386366a", - "persistent" : true, - "insertionIndex" : 12 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json new file mode 100644 index 0000000..4ac51de --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json @@ -0,0 +1,32 @@ +{ + "id" : "43534cd9-3277-4968-9aa1-d19a1b57e139", + "name" : "v1_function", + "request" : { + "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test&version=485dbf64e486ab3a", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function-43534cd9-3277-4968-9aa1-d19a1b57e139.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:06 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "a3902845-89e0-4aab-ae17-4db163fcb04b", + "x-amzn-Remapped-content-length" : "913", + "x-bt-internal-trace-id" : "698545860000000078452e1c6ebfc767", + "x-amz-apigw-id" : "YVfNHFsLIAMEedA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"391-e2sQ3WLqbgDUML3AlteZzSuvEIE\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854586-16cd280854d82bc40ecca2e0;Parent=145350827ec5f565;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 21c7c4234f218bb5110262cbbf01f870.cloudfront.net (CloudFront), 1.1 a53bab1af200813b8f27e3c0a28b4964.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "lbvftLVNgc2Dhge1vDz8ToNMu1xyhVJzqTlM2PW6ejntaQeZuHs1vQ==" + } + }, + "uuid" : "43534cd9-3277-4968-9aa1-d19a1b57e139", + "persistent" : true, + "insertionIndex" : 57 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-9270516e-455e-4e54-a319-08763684b9e1.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-9270516e-455e-4e54-a319-08763684b9e1.json new file mode 100644 index 0000000..f974e38 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function-9270516e-455e-4e54-a319-08763684b9e1.json @@ -0,0 +1,35 @@ +{ + "id" : "9270516e-455e-4e54-a319-08763684b9e1", + "name" : "v1_function", + "request" : { + "url" : "/v1/function?slug=close-enough-judge-d31b&project_name=java-unit-test", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function-9270516e-455e-4e54-a319-08763684b9e1.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:01 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "bfb5c125-3c4c-455b-bb95-3df914cd1ff1", + "x-amzn-Remapped-content-length" : "970", + "x-bt-internal-trace-id" : "69854581000000001bfb343680f881aa", + "x-amz-apigw-id" : "YVfMVEZuoAMETRQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"3ca-U7pLamkO1Ncw3QGMXz5hnQvgnvk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854581-200d61213a8e6b4a146c32b3;Parent=117f6341be68dd3d;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 ec62626c4e205f1980b4ed65142b10d8.cloudfront.net (CloudFront), 1.1 ffe9646b2ea911744e2d51fc0715cedc.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "MBOHaFmCY2bQ0VEaiORd6AKrI890SQVfh7vKr-HKUroCYnTVKbCstg==" + } + }, + "uuid" : "9270516e-455e-4e54-a319-08763684b9e1", + "persistent" : true, + "scenarioName" : "scenario-7-v1-function", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-7-v1-function-2", + "insertionIndex" : 45 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json new file mode 100644 index 0000000..9f94186 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json @@ -0,0 +1,35 @@ +{ + "id" : "a21b660b-1a47-4bcc-883b-edea5bcb61a4", + "name" : "v1_function", + "request" : { + "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function-a21b660b-1a47-4bcc-883b-edea5bcb61a4.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:57 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "6cd16387-4730-4234-85d2-78dad0eaf350", + "x-amzn-Remapped-content-length" : "913", + "x-bt-internal-trace-id" : "6985457d000000003aaa40535f0a899c", + "x-amz-apigw-id" : "YVfLrHBOIAMEY0w=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"391-iVW1u69I859gEDeC7XzXAO2kbf4\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457d-5af90eaf2166d1e315982a0d;Parent=29579ba561bf39b1;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 05717f654525d5f71688fb57ace6362a.cloudfront.net (CloudFront), 1.1 0eb43913f9caf453beb959a8a836a688.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "hbWiSPe__A2LRHMsL0Oewcgtbqh-Yya8mEpZjuN8MGgZzF13HKTwFA==" + } + }, + "uuid" : "a21b660b-1a47-4bcc-883b-edea5bcb61a4", + "persistent" : true, + "scenarioName" : "scenario-6-v1-function", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-6-v1-function-2", + "insertionIndex" : 35 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json deleted file mode 100644 index b76eda1..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id" : "a40fed81-8f60-44a2-819c-afa1c6941fe1", - "name" : "v1_function", - "request" : { - "url" : "/v1/function?slug=close-enough-judge-d31b&project_name=java-unit-test", - "method" : "GET" - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function-a40fed81-8f60-44a2-819c-afa1c6941fe1.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:09 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "832d2cf0-bb5e-4fc9-bb74-9dc9c0c84b88", - "x-amzn-Remapped-content-length" : "970", - "x-bt-internal-trace-id" : "697308c9000000002bc838a48543b28d", - "x-amz-apigw-id" : "Xn5PjHfBIAMEOGQ=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"3ca-U7pLamkO1Ncw3QGMXz5hnQvgnvk\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c9-1459d1e630f5ca357924cbc9;Parent=2a38a45e854d66b2;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 aae9b7724185120bb8d23ea2cb4efe0c.cloudfront.net (CloudFront), 1.1 da32b45f2cc22dc818960285c4e91b66.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "dzrdY7PjXY0KMewRRMFmwZC4voyAuGScJqUsv_-UB1G9EYr73afWmg==" - } - }, - "uuid" : "a40fed81-8f60-44a2-819c-afa1c6941fe1", - "persistent" : true, - "insertionIndex" : 10 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json deleted file mode 100644 index cc0859f..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "ce46228b-9279-4285-9695-5d3ab0ebb857", - "name" : "v1_function", - "request" : { - "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test", - "method" : "GET" - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function-ce46228b-9279-4285-9695-5d3ab0ebb857.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:08 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "ee2d4de1-4414-4c32-af31-cfb92621a650", - "x-amzn-Remapped-content-length" : "913", - "x-bt-internal-trace-id" : "697308c800000000320afa6b6d4db01a", - "x-amz-apigw-id" : "Xn5PZF7boAMETbw=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"391-iVW1u69I859gEDeC7XzXAO2kbf4\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c8-64ccd42e3bd115736333a8c8;Parent=28a1de37d9e32ef7;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 b542d7019a03585dbf3c5588bc1da03a.cloudfront.net (CloudFront), 1.1 e6b2537b87653726af8a79e6da505188.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "8f6jXBYwrKBtvL6dlOwjelCeJlyQQbVkStpx2LFr5-x7K0mLslSvJQ==" - } - }, - "uuid" : "ce46228b-9279-4285-9695-5d3ab0ebb857", - "persistent" : true, - "scenarioName" : "scenario-2-v1-function", - "requiredScenarioState" : "scenario-2-v1-function-2", - "insertionIndex" : 8 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json new file mode 100644 index 0000000..bba0cc3 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json @@ -0,0 +1,34 @@ +{ + "id" : "e40a6c6d-8043-4604-8743-5b8d3ef20ebb", + "name" : "v1_function", + "request" : { + "url" : "/v1/function?slug=close-enough-judge-d31b&project_name=java-unit-test", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function-e40a6c6d-8043-4604-8743-5b8d3ef20ebb.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:04 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "16f0ffa2-3f31-495e-bf18-d18967fce2bb", + "x-amzn-Remapped-content-length" : "970", + "x-bt-internal-trace-id" : "69854584000000005546a7476e05e111", + "x-amz-apigw-id" : "YVfMzFgyoAMElhg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"3ca-U7pLamkO1Ncw3QGMXz5hnQvgnvk\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854584-5cad96617c034dd955486fe8;Parent=093bab9138744e83;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 d9d466ed70d93f34739969f91577ec74.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "wZFM4Xtpyo1Wp6CsnwL_XVc2OJLl7Xsn1uyLHY3UndwPv1gIIETupw==" + } + }, + "uuid" : "e40a6c6d-8043-4604-8743-5b8d3ef20ebb", + "persistent" : true, + "scenarioName" : "scenario-7-v1-function", + "requiredScenarioState" : "scenario-7-v1-function-2", + "insertionIndex" : 52 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json b/src/test/resources/cassettes/braintrust/mappings/v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json deleted file mode 100644 index 6f4c2c5..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "id" : "ec6186f4-a80d-4a8c-81fb-ad828ba038b8", - "name" : "v1_function", - "request" : { - "url" : "/v1/function?slug=typescriptexactmatch-9e44&project_name=java-unit-test", - "method" : "GET" - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function-ec6186f4-a80d-4a8c-81fb-ad828ba038b8.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:07 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "7ae431e0-39e6-4e0a-a5ed-16c7c8e33268", - "x-amzn-Remapped-content-length" : "913", - "x-bt-internal-trace-id" : "697308c70000000000288f5631c3d9db", - "x-amz-apigw-id" : "Xn5PREqQoAMEC6g=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"391-iVW1u69I859gEDeC7XzXAO2kbf4\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c7-761424a613fddcae70423c3f;Parent=21d49aded2c44837;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 09a1a54fdbf13d19927a903f4a7d5186.cloudfront.net (CloudFront), 1.1 ffe9646b2ea911744e2d51fc0715cedc.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "dKsTT6vOCgxlJsdHHKpOY_yKKxMe8TwWJ4IodLwzpp4ZJDJdW_JJuQ==" - } - }, - "uuid" : "ec6186f4-a80d-4a8c-81fb-ad828ba038b8", - "persistent" : true, - "scenarioName" : "scenario-2-v1-function", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-2-v1-function-2", - "insertionIndex" : 6 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json new file mode 100644 index 0000000..4f78bb4 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json @@ -0,0 +1,34 @@ +{ + "id" : "12c00315-a2c6-451c-9b5f-274322d28c69", + "name" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "request" : { + "url" : "/v1/function/5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-12c00315-a2c6-451c-9b5f-274322d28c69.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:05 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "3c2388db-29dc-4820-9e92-87a11f6e89f7", + "x-amzn-Remapped-content-length" : "956", + "x-bt-internal-trace-id" : "69854585000000004d63dca1adabd85c", + "x-amz-apigw-id" : "YVfM2F8ooAMErNQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"3bc-0HC9bz/IZOgDBh9bN2bxOI+hIfI\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854585-0b23122a4be6106c16b20736;Parent=34110b0a15b5da41;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 d08613e1dd8ad614e47875ae31a8af20.cloudfront.net (CloudFront), 1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "Pf-fsFTkbR36KWEnkZ3SIdlupRGalgY8FgflvRoWuvxkS4fAbZ5njQ==" + } + }, + "uuid" : "12c00315-a2c6-451c-9b5f-274322d28c69", + "persistent" : true, + "scenarioName" : "scenario-8-v1-function-5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "requiredScenarioState" : "scenario-8-v1-function-5dd8a26d-3be8-4ecd-af5b-df2a6a592277-2", + "insertionIndex" : 53 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json new file mode 100644 index 0000000..d8d4b5e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json @@ -0,0 +1,35 @@ +{ + "id" : "6af504d6-0141-49f3-be47-ff605070f9b2", + "name" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "request" : { + "url" : "/v1/function/5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277-6af504d6-0141-49f3-be47-ff605070f9b2.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:02 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "d3379151-5734-4cbc-9347-1c82275ca65f", + "x-amzn-Remapped-content-length" : "956", + "x-bt-internal-trace-id" : "69854582000000000c81b47849189201", + "x-amz-apigw-id" : "YVfMYFQLIAMEcDQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"3bc-0HC9bz/IZOgDBh9bN2bxOI+hIfI\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854582-4f28b4072a21942303c35aae;Parent=41bdea1109d0e1e0;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "c5lCRgx5UA7hgfwsckVwNNrUH1Ds0SEBYm6AaR-hm0lkcKP80-xaSg==" + } + }, + "uuid" : "6af504d6-0141-49f3-be47-ff605070f9b2", + "persistent" : true, + "scenarioName" : "scenario-8-v1-function-5dd8a26d-3be8-4ecd-af5b-df2a6a592277", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-8-v1-function-5dd8a26d-3be8-4ecd-af5b-df2a6a592277-2", + "insertionIndex" : 46 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json similarity index 65% rename from src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json rename to src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json index b34699b..3b257b8 100644 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json @@ -1,5 +1,5 @@ { - "id" : "c67cd10d-7d05-4e66-a861-360e14dace92", + "id" : "9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad", "name" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke", "request" : { "url" : "/v1/function/5dd8a26d-3be8-4ecd-af5b-df2a6a592277/invoke", @@ -17,43 +17,42 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-c67cd10d-7d05-4e66-a861-360e14dace92.json", + "bodyFileName" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad.json", "headers" : { "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:09 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:06 GMT", "x-bt-used-endpoint" : "OPENAI_API_KEY", - "x-amzn-RequestId" : "46e7b13d-1760-4604-b100-59262ce4a2c5", - "cf-ray" : "9c2301680d22b4ba-IAD", + "x-amzn-RequestId" : "49121b68-2fbb-4bec-a087-070c1d0800d8", + "cf-ray" : "9c96e23d8f0c1f55-IAD", "x-ratelimit-remaining-requests" : "29999", - "openai-processing-ms" : "7267", + "openai-processing-ms" : "8318", "cf-cache-status" : "DYNAMIC", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", "x-bt-cached" : "HIT", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-reset-requests" : "2ms", - "x-envoy-upstream-service-time" : "7402", "openai-organization" : "braintrust-data", - "x-request-id" : "req_e0eec56f2a354da0ad52cca9f8fb1aa5", - "set-cookie" : "_cfuvid=Wfvzi.WlyOXcpGIt_lOzuCyfYKl5KGyA9p61vfKm8.g-1769126378024-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", + "x-request-id" : "req_b706e01f1eb043009dea18b6961e5a25", + "set-cookie" : "_cfuvid=NqDewCmsnTWykf9iRltfNDDHm4O8lQ94FxKoxzbKMns-1770341450694-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "cache-control" : "max-age=604800", "x-ratelimit-limit-tokens" : "180000000", "x-content-type-options" : "nosniff", "x-ratelimit-remaining-tokens" : "179999943", "x-bt-function-creds-cached" : "HIT", - "X-Amzn-Trace-Id" : "Root=1-697308c9-62f383997faeb1d40789390a;Parent=1d54fe41e5502c92;Sampled=0;Lineage=1:8be8f50d:0", + "X-Amzn-Trace-Id" : "Root=1-69854586-56e02ccf5343a3944fed769a;Parent=0db83594e0e8f252;Sampled=0;Lineage=1:8be8f50d:0", "x-bt-function-meta-cached" : "HIT", "x-ratelimit-reset-tokens" : "0s", "openai-version" : "2020-10-01", "x-ratelimit-limit-requests" : "30000", "openai-project" : "proj_wMRY6YpEiASXMxPIIcI9nQRi", "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "Via" : "1.1 82fa7f20ab5a12301da8e01f9493e222.cloudfront.net (CloudFront)", "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "AZnkOMP4ybJrHTO6ilSDGF-yLqzLAFHC4WWqa1pUwW2FR8NTnNxhxw==", - "Age" : "20189" + "X-Amz-Cf-Id" : "HG87vN1gyD0-JluKPEbPScrYlnya1UOLYJtiicnzsPBw51aOMEY29A==", + "Age" : "312" } }, - "uuid" : "c67cd10d-7d05-4e66-a861-360e14dace92", + "uuid" : "9c1ad0ab-3183-42f3-bbdd-ec36dfa726ad", "persistent" : true, - "insertionIndex" : 11 + "insertionIndex" : 56 } \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json new file mode 100644 index 0000000..884481b --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json @@ -0,0 +1,60 @@ +{ + "id" : "dc0610e4-b9a7-466f-8485-6de01fcc8a7d", + "name" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke", + "request" : { + "url" : "/v1/function/5dd8a26d-3be8-4ecd-af5b-df2a6a592277/invoke", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"input\":{\"input\":\"test input\",\"output\":\"hello world\",\"expected\":\"hello world\",\"metadata\":{}},\"parent\":{\"object_type\":\"project_logs\",\"object_id\":\"6ae68365-7620-4630-921b-bac416634fc8\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"f0d93b16e0263ec9\",\"root_span_id\":\"1ac0a409fabeeef1bbee8c5b89d20f78\"}}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_5dd8a26d-3be8-4ecd-af5b-df2a6a592277_invoke-dc0610e4-b9a7-466f-8485-6de01fcc8a7d.json", + "headers" : { + "Content-Type" : "application/json", + "Date" : "Fri, 06 Feb 2026 01:36:03 GMT", + "x-bt-used-endpoint" : "OPENAI_API_KEY", + "x-amzn-RequestId" : "82edee5d-35b0-4c04-9e40-42dfebee36c3", + "cf-ray" : "9c96e1c9ba3fe60f-IAD", + "x-ratelimit-remaining-requests" : "29999", + "openai-processing-ms" : "7764", + "cf-cache-status" : "DYNAMIC", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "x-bt-cached" : "HIT", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-reset-requests" : "2ms", + "openai-organization" : "braintrust-data", + "x-request-id" : "req_ab6369f05e3d4d368baa4addba4c568e", + "set-cookie" : "_cfuvid=r3BVMis4zkR339f4fihX2o4eHUNH3SVhOrZXNdCocb4-1770341431614-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", + "x-bt-span-export" : "AwIDAWrmg2V2IEYwkhu6xBZjT8gCwOfpZbR3TAqXO/Ecm6EG1wOp/VPzhSpARZbHwVVJo2NgeyJwcm9wYWdhdGVkX2V2ZW50Ijp7InNwYW5fYXR0cmlidXRlcyI6eyJwdXJwb3NlIjoic2NvcmVyIn19LCJyb290X3NwYW5faWQiOiIxYWMwYTQwOWZhYmVlZWYxYmJlZThjNWI4OWQyMGY3OCJ9", + "cache-control" : "max-age=604800", + "x-ratelimit-limit-tokens" : "180000000", + "x-content-type-options" : "nosniff", + "x-bt-span-id" : "c0e7e965-b477-4c0a-973b-f11c9ba106d7", + "x-ratelimit-remaining-tokens" : "179999937", + "x-bt-function-creds-cached" : "HIT", + "X-Amzn-Trace-Id" : "Root=1-69854582-1f4a409c63074ae35c42db84;Parent=24fe4e540013a9ee;Sampled=0;Lineage=1:8be8f50d:0", + "x-bt-function-meta-cached" : "HIT", + "x-ratelimit-reset-tokens" : "0s", + "openai-version" : "2020-10-01", + "x-ratelimit-limit-requests" : "30000", + "openai-project" : "proj_wMRY6YpEiASXMxPIIcI9nQRi", + "X-Cache" : "Miss from cloudfront", + "Via" : "1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P10", + "X-Amz-Cf-Id" : "JNn_vL9JYbPq8jgCbAhkAca-75msWnrfn_4bXXeH38ViqekX_77nGA==", + "Age" : "325" + } + }, + "uuid" : "dc0610e4-b9a7-466f-8485-6de01fcc8a7d", + "persistent" : true, + "insertionIndex" : 49 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json new file mode 100644 index 0000000..8e5b1b4 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json @@ -0,0 +1,35 @@ +{ + "id" : "4ca2aa7c-9d8d-43db-837e-d98a6c2c9316", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4ca2aa7c-9d8d-43db-837e-d98a6c2c9316.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:43 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "0c7efd11-0481-45a6-99c7-c72aaf7f356b", + "x-amzn-Remapped-content-length" : "899", + "x-bt-internal-trace-id" : "6985456f00000000218c2df720a1fb62", + "x-amz-apigw-id" : "YVfJaGK6oAMEOKg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"383-rpJVBmKrFDirLJWf8+TFyK5s3tg\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456f-0896a17c6725f5123bfa5e3d;Parent=0029d538a4fd4408;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 d08613e1dd8ad614e47875ae31a8af20.cloudfront.net (CloudFront), 1.1 0eb43913f9caf453beb959a8a836a688.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "xUKqKGooJ3TE7HGFTYqCAleP-GEDg4woj4JFdDWLXABmwqw-XDVI2A==" + } + }, + "uuid" : "4ca2aa7c-9d8d-43db-837e-d98a6c2c9316", + "persistent" : true, + "scenarioName" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-2", + "insertionIndex" : 4 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json new file mode 100644 index 0000000..690e32b --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json @@ -0,0 +1,35 @@ +{ + "id" : "898c879f-d35d-49d5-8ba2-b8e26f1ff534", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-898c879f-d35d-49d5-8ba2-b8e26f1ff534.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:59 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "1181e6c3-aaba-48a6-9139-fa5da34296d1", + "x-amzn-Remapped-content-length" : "899", + "x-bt-internal-trace-id" : "6985457f000000005f234454594807ee", + "x-amz-apigw-id" : "YVfMDEZ_IAMEbOg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"383-rpJVBmKrFDirLJWf8+TFyK5s3tg\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457f-3f108bc71657abcd66b246db;Parent=228fdd3ed5353072;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 d525041695bdb6325f78ebba5c11b8a2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "t7-byGkJQSJrvqFeiXtL2eY8xNuNaFnZWlX4AeYeggV85Zp3QHe5tg==" + } + }, + "uuid" : "898c879f-d35d-49d5-8ba2-b8e26f1ff534", + "persistent" : true, + "scenarioName" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "requiredScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-3", + "newScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4", + "insertionIndex" : 41 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json new file mode 100644 index 0000000..e0b5e28 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json @@ -0,0 +1,34 @@ +{ + "id" : "9c461a52-c5db-4c4d-9c33-332b6972c73b", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-9c461a52-c5db-4c4d-9c33-332b6972c73b.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:07 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "b1cb30af-5cad-4eb4-b4dc-921de3b06408", + "x-amzn-Remapped-content-length" : "899", + "x-bt-internal-trace-id" : "69854587000000005bfd354dcc0a2b0f", + "x-amz-apigw-id" : "YVfNLF2HIAMEuyw=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"383-rpJVBmKrFDirLJWf8+TFyK5s3tg\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854587-46f757ac62ad90f8614a44a1;Parent=31e2cb9e21ff6f2b;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 fbb003dfc0617e3e058e3dac791dfd5a.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "bNtfj0OdBw5DSowpfOPvP6Lswq1TT3GAssq2pfSMKIIV0Z1wmgA9_Q==" + } + }, + "uuid" : "9c461a52-c5db-4c4d-9c33-332b6972c73b", + "persistent" : true, + "scenarioName" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "requiredScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-4", + "insertionIndex" : 58 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json new file mode 100644 index 0000000..f8007ce --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json @@ -0,0 +1,35 @@ +{ + "id" : "f3fc503a-9d35-4d84-9af9-aa66a05d6139", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f-f3fc503a-9d35-4d84-9af9-aa66a05d6139.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:57 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "ea84c5e5-d063-45d9-bf11-3e0c9c37cb10", + "x-amzn-Remapped-content-length" : "899", + "x-bt-internal-trace-id" : "6985457d0000000047c2284414642f52", + "x-amz-apigw-id" : "YVfLvHdFoAMEOKg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"383-rpJVBmKrFDirLJWf8+TFyK5s3tg\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457d-7badb93a376ad95b48e4162f;Parent=3892ef622ad0d4bc;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2582fcc2e5a8f93a556ac3ef26738abc.cloudfront.net (CloudFront), 1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "dqua5CXC0Jn7Gdp6_4RUzYFeLraz4ggCUh1YhPNhv7tunNkR-nrcyA==" + } + }, + "uuid" : "f3fc503a-9d35-4d84-9af9-aa66a05d6139", + "persistent" : true, + "scenarioName" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f", + "requiredScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-2", + "newScenarioState" : "scenario-3-v1-function-efa5f9c3-6ece-4726-a9d6-4ba792980b3f-3", + "insertionIndex" : 36 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json new file mode 100644 index 0000000..8fe693f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json @@ -0,0 +1,39 @@ +{ + "id" : "0d2552a5-5d8f-4892-8d3e-b137f2b76a3e", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"input\":{\"input\":\"carrot\",\"output\":\"java-fruit\",\"expected\":\"vegetable\",\"metadata\":{}},\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"4a1e1acf9bdf2b1d\",\"root_span_id\":\"381fa2f0bbd4c27481f1bee0515d39c5\"}}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-0d2552a5-5d8f-4892-8d3e-b137f2b76a3e.json", + "headers" : { + "Content-Type" : "application/json", + "Date" : "Fri, 06 Feb 2026 01:35:47 GMT", + "X-Amzn-Trace-Id" : "Root=1-69854572-2f22343e535867542524c993;Parent=2d8ffeed45e14266;Sampled=0;Lineage=1:8be8f50d:0", + "x-bt-function-meta-cached" : "HIT", + "x-amzn-RequestId" : "2dba167e-32b8-45e1-8fa1-0a1c367c2319", + "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICB/Rn4r1tSRKCi4gZpmbZsANacSQPAqJGNZfgfQyTtABweyJwcm9wYWdhdGVkX2V2ZW50Ijp7InNwYW5fYXR0cmlidXRlcyI6eyJwdXJwb3NlIjoic2NvcmVyIn19LCJyb290X3NwYW5faWQiOiIzODFmYTJmMGJiZDRjMjc0ODFmMWJlZTA1MTVkMzljNSJ9", + "x-bt-span-id" : "07f467e2-bd6d-4912-828b-8819a666d9b0", + "x-bt-function-creds-cached" : "HIT", + "X-Cache" : "Miss from cloudfront", + "Via" : "1.1 96f6dcbb4d7267cad6eb0747bce72024.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P10", + "X-Amz-Cf-Id" : "NI7Jrxiiyn2l5G4iYTRaiwSL1vQRx9l4EimWb7Gb1MWa25prutaQFQ==" + } + }, + "uuid" : "0d2552a5-5d8f-4892-8d3e-b137f2b76a3e", + "persistent" : true, + "insertionIndex" : 11 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json similarity index 61% rename from src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json rename to src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json index 1dd1140..462cfaa 100644 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json @@ -1,5 +1,5 @@ { - "id" : "a5548413-7bea-4a3b-8dd6-575e0594ca85", + "id" : "4a4aabcc-e55d-4f87-8c42-57780ceb1673", "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", "request" : { "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", @@ -17,21 +17,21 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a5548413-7bea-4a3b-8dd6-575e0594ca85.json", + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-4a4aabcc-e55d-4f87-8c42-57780ceb1673.json", "headers" : { "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:09 GMT", - "X-Amzn-Trace-Id" : "Root=1-697308c9-400c4ada2b683df94fee5133;Parent=4fe28c055c2e986f;Sampled=0;Lineage=1:8be8f50d:0", + "Date" : "Fri, 06 Feb 2026 01:36:01 GMT", + "X-Amzn-Trace-Id" : "Root=1-69854581-6828c98a3d9beaa522f49bb1;Parent=7ec2a94ad8e36727;Sampled=0;Lineage=1:8be8f50d:0", "x-bt-function-meta-cached" : "HIT", - "x-amzn-RequestId" : "9cb21a50-2965-4088-ac88-c8154e5a5a2a", + "x-amzn-RequestId" : "154b42ed-af1a-4542-9843-f74c382ad51c", "x-bt-function-creds-cached" : "HIT", "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 d525041695bdb6325f78ebba5c11b8a2.cloudfront.net (CloudFront)", + "Via" : "1.1 e6b2537b87653726af8a79e6da505188.cloudfront.net (CloudFront)", "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "hs6E1WkHWi7zdZ6-9xXQ98nPuCZQpFYWMq6voCMmz83LmAuoI1CfdA==" + "X-Amz-Cf-Id" : "vq02qZfhOPOOZdrYYFISjWH-8zoouDjty1RcB3fzWLL-K9Hd5j0ayg==" } }, - "uuid" : "a5548413-7bea-4a3b-8dd6-575e0594ca85", + "uuid" : "4a4aabcc-e55d-4f87-8c42-57780ceb1673", "persistent" : true, - "insertionIndex" : 9 + "insertionIndex" : 44 } \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json deleted file mode 100644 index 43c6112..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id" : "69d15cfb-87c7-41a1-a99a-df653a67ec0a", - "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", - "request" : { - "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"input\":{\"input\":\"carrot\",\"output\":\"java-fruit\",\"expected\":\"vegetable\",\"metadata\":{}}}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-69d15cfb-87c7-41a1-a99a-df653a67ec0a.json", - "headers" : { - "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:07 GMT", - "X-Amzn-Trace-Id" : "Root=1-697308c7-7b5db7f70a2cde7f55dc3d37;Parent=5b5163543a97cc2d;Sampled=0;Lineage=1:8be8f50d:0", - "x-bt-function-meta-cached" : "HIT", - "x-amzn-RequestId" : "d90b3df5-3157-4e1c-bce5-b948f859eb72", - "x-bt-function-creds-cached" : "HIT", - "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 f8731007efc5ab360d90cee573a1e916.cloudfront.net (CloudFront)", - "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "FHz-qaF3V-vDYJN3ao-7VkQT5W2lIdgx25TbM_-yo6J0XE_b1jHF2w==" - } - }, - "uuid" : "69d15cfb-87c7-41a1-a99a-df653a67ec0a", - "persistent" : true, - "insertionIndex" : 5 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json deleted file mode 100644 index be03d5b..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "id" : "a599c78a-4aec-4bf0-b64e-e9b183b45c57", - "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", - "request" : { - "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"input\":{\"input\":\"apple\",\"output\":\"java-fruit\",\"expected\":\"fruit\",\"metadata\":{}}}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-a599c78a-4aec-4bf0-b64e-e9b183b45c57.json", - "headers" : { - "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:06 GMT", - "X-Amzn-Trace-Id" : "Root=1-697308c6-2d7a2814638a885665cbbf0c;Parent=6f2db2d141c9837d;Sampled=0;Lineage=1:8be8f50d:0", - "x-bt-function-meta-cached" : "HIT", - "x-amzn-RequestId" : "2619c576-7c27-4ea8-8bb3-2594fb9c5231", - "x-bt-function-creds-cached" : "HIT", - "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", - "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "cVWp2u0rg5QNTANlInRhVfQ3qWVDRPObVqv9u2JzyKdANNMfE-8uXg==" - } - }, - "uuid" : "a599c78a-4aec-4bf0-b64e-e9b183b45c57", - "persistent" : true, - "insertionIndex" : 4 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json similarity index 61% rename from src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json rename to src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json index e1ab6c3..64d1aaa 100644 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json @@ -1,5 +1,5 @@ { - "id" : "f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0", + "id" : "ac676ea5-1232-4b30-9600-138691120f7b", "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", "request" : { "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", @@ -17,21 +17,21 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0.json", + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-ac676ea5-1232-4b30-9600-138691120f7b.json", "headers" : { "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:08 GMT", - "X-Amzn-Trace-Id" : "Root=1-697308c8-1a7890d73a86eb5a551f2af3;Parent=033072685970f626;Sampled=0;Lineage=1:8be8f50d:0", + "Date" : "Fri, 06 Feb 2026 01:35:59 GMT", + "X-Amzn-Trace-Id" : "Root=1-6985457f-455750fe7e742efc70827907;Parent=6d269913a89e5234;Sampled=0;Lineage=1:8be8f50d:0", "x-bt-function-meta-cached" : "HIT", - "x-amzn-RequestId" : "e46331ea-d1a9-4811-8bdd-3d3e571222f8", + "x-amzn-RequestId" : "eb38a68e-09da-4705-9aa8-07cd1b912346", "x-bt-function-creds-cached" : "HIT", "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 87247d9a9b2f9e51b0c72b364948aefa.cloudfront.net (CloudFront)", + "Via" : "1.1 ffe9646b2ea911744e2d51fc0715cedc.cloudfront.net (CloudFront)", "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "rLbEuM9iZpq8FYhFPaxiPDahQm5k7Pt3NohzD5oLJzunIX4P2U715Q==" + "X-Amz-Cf-Id" : "X1jsNnhQIhOECMYZIHgPfnpHvzgmL8Ddbc63sxzCVVhnRiAgJ7GNyg==" } }, - "uuid" : "f8a0cc9c-fc09-4c58-bb90-f7e3c4de7cc0", + "uuid" : "ac676ea5-1232-4b30-9600-138691120f7b", "persistent" : true, - "insertionIndex" : 7 + "insertionIndex" : 39 } \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json new file mode 100644 index 0000000..0604338 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json @@ -0,0 +1,39 @@ +{ + "id" : "d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60", + "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", + "request" : { + "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"input\":{\"input\":\"apple\",\"output\":\"java-fruit\",\"expected\":\"fruit\",\"metadata\":{}},\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"3470ea037b943bb8\",\"root_span_id\":\"9e900e168252c883905c005b93180a65\"}}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60.json", + "headers" : { + "Content-Type" : "application/json", + "Date" : "Fri, 06 Feb 2026 01:35:46 GMT", + "X-Amzn-Trace-Id" : "Root=1-69854571-6fa3ed464ffa4bd83614206d;Parent=478a6bcf96f4a3b1;Sampled=0;Lineage=1:8be8f50d:0", + "x-bt-function-meta-cached" : "HIT", + "x-amzn-RequestId" : "7e07e2eb-8802-43d2-9158-9d9277efb335", + "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICmurRnWltSICs134BnFB0tQMgfYujAFhOH7qmeyGoO/b5eyJwcm9wYWdhdGVkX2V2ZW50Ijp7InNwYW5fYXR0cmlidXRlcyI6eyJwdXJwb3NlIjoic2NvcmVyIn19LCJyb290X3NwYW5faWQiOiI5ZTkwMGUxNjgyNTJjODgzOTA1YzAwNWI5MzE4MGE2NSJ9", + "x-bt-span-id" : "9aead19d-696d-4880-acd7-7e019c5074b5", + "x-bt-function-creds-cached" : "HIT", + "X-Cache" : "Miss from cloudfront", + "Via" : "1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P10", + "X-Amz-Cf-Id" : "Kb0grPORtiuLPPw78kBX-ECgD8xbgu7srux0yVlSEtFWCk7hnc8rqA==" + } + }, + "uuid" : "d95aa8cb-7ee9-4e3e-9df6-7fe4dde75c60", + "persistent" : true, + "insertionIndex" : 9 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json similarity index 62% rename from src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json rename to src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json index b64fba6..d16c10a 100644 --- a/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json +++ b/src/test/resources/cassettes/braintrust/mappings/v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json @@ -1,5 +1,5 @@ { - "id" : "d2eef3e5-3348-4b4d-8ea5-08d7da45f22b", + "id" : "deb57eb3-cf79-479b-b9bf-71a45381fbc6", "name" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke", "request" : { "url" : "/v1/function/efa5f9c3-6ece-4726-a9d6-4ba792980b3f/invoke", @@ -17,21 +17,21 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-d2eef3e5-3348-4b4d-8ea5-08d7da45f22b.json", + "bodyFileName" : "v1_function_efa5f9c3-6ece-4726-a9d6-4ba792980b3f_invoke-deb57eb3-cf79-479b-b9bf-71a45381fbc6.json", "headers" : { "Content-Type" : "application/json", - "Date" : "Fri, 23 Jan 2026 05:36:10 GMT", - "X-Amzn-Trace-Id" : "Root=1-697308ca-0550de0169605a955c9369ea;Parent=2824946edb1ecfdd;Sampled=0;Lineage=1:8be8f50d:0", + "Date" : "Fri, 06 Feb 2026 01:36:08 GMT", + "X-Amzn-Trace-Id" : "Root=1-69854588-547ef631599d99a51519e1a3;Parent=2ccdb273e1997108;Sampled=0;Lineage=1:8be8f50d:0", "x-bt-function-meta-cached" : "HIT", - "x-amzn-RequestId" : "d3c5512b-29ee-4e90-bd0d-5d499be5b39a", + "x-amzn-RequestId" : "634ce046-68e6-4419-a483-1f991549a507", "x-bt-function-creds-cached" : "HIT", "X-Cache" : "Miss from cloudfront", - "Via" : "1.1 74e8c76139b8c7f9b11d5e4441c2a7a2.cloudfront.net (CloudFront)", + "Via" : "1.1 ddea1c07643e5e0bfceb34480eebdc52.cloudfront.net (CloudFront)", "X-Amz-Cf-Pop" : "SEA900-P10", - "X-Amz-Cf-Id" : "QEYzusVCnA1b_6QzcDlZyjIYx0Iw18uK-fwBXeS5PNh2UWuUDAMO4g==" + "X-Amz-Cf-Id" : "TeJZVulbNzh9v0ulMX60m3xS6CHBCLWmHvp5se0a4GCG2Xr0wj7xIw==" } }, - "uuid" : "d2eef3e5-3348-4b4d-8ea5-08d7da45f22b", + "uuid" : "deb57eb3-cf79-479b-b9bf-71a45381fbc6", "persistent" : true, - "insertionIndex" : 13 + "insertionIndex" : 61 } \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json new file mode 100644 index 0000000..15946c4 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json @@ -0,0 +1,46 @@ +{ + "id" : "2cb9406f-3fad-4b28-b71c-dcae94b5ed9c", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-2cb9406f-3fad-4b28-b71c-dcae94b5ed9c.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:39 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "4c919e38-8d76-4eb4-afc4-f621bb59d768", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985456b0000000060fb15342c9e4920", + "x-amz-apigw-id" : "YVfI1FLCoAMEA1Q=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456b-3289670513a4bcfe586a83ed;Parent=3f60f2f374b3b357;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 9257f9c4051fe8bd6cc4a09855b66350.cloudfront.net (CloudFront), 1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "DemEpFrIDWdVXv_ejcYdl0uUyRlgLa2fV0pvbaVtikNrZ7sQF0OJFw==" + } + }, + "uuid" : "2cb9406f-3fad-4b28-b71c-dcae94b5ed9c", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-1-v1-project-2", + "insertionIndex" : 1 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-71df9154-af57-4780-b607-897e17535f35.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-71df9154-af57-4780-b607-897e17535f35.json new file mode 100644 index 0000000..9dd7d3f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-71df9154-af57-4780-b607-897e17535f35.json @@ -0,0 +1,46 @@ +{ + "id" : "71df9154-af57-4780-b607-897e17535f35", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-71df9154-af57-4780-b607-897e17535f35.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:48 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "54d39950-7363-4beb-9e47-2ac3d5a90502", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854574000000004ac0d2a70e425b33", + "x-amz-apigw-id" : "YVfKOEUzIAMEiPQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854574-3b782c7d2f419288534679a7;Parent=7e68e88f21b74582;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "aZ-YVlGSJ1BeqzzIydaU9Npm0D0wK3xELaEuUk_b8EueNpVMpp6WwQ==" + } + }, + "uuid" : "71df9154-af57-4780-b607-897e17535f35", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-2", + "newScenarioState" : "scenario-1-v1-project-3", + "insertionIndex" : 13 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json new file mode 100644 index 0000000..7aa748a --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-908b8dac-e536-4944-a260-db110aef03bb.json @@ -0,0 +1,45 @@ +{ + "id" : "908b8dac-e536-4944-a260-db110aef03bb", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-908b8dac-e536-4944-a260-db110aef03bb.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:56 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "76083324-bf00-49d9-baea-0e50f3379c54", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457b00000000494fc15f9a6c1801", + "x-amz-apigw-id" : "YVfLbEPZoAMEpyA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457b-246f059976b253a042d45e69;Parent=7d1046927cfb6e88;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 dc8ab0490cc3f7679073e847e3aabb66.cloudfront.net (CloudFront), 1.1 82fa7f20ab5a12301da8e01f9493e222.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "t4zytxpYXzG1LOSKnM66JinDX2xXvAQbX0vaofxnIHmy1OS0vDdXLg==" + } + }, + "uuid" : "908b8dac-e536-4944-a260-db110aef03bb", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-7", + "insertionIndex" : 31 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json new file mode 100644 index 0000000..14a7fe0 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json @@ -0,0 +1,46 @@ +{ + "id" : "a31e2d4d-6d11-4cf2-a2fc-01ba4383844a", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-a31e2d4d-6d11-4cf2-a2fc-01ba4383844a.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:54 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "0318f16c-de98-4c9e-9fb7-884652e67b62", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457a00000000191b44e118e0d5c0", + "x-amz-apigw-id" : "YVfLLEozoAMEbTA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457a-5055e68f3f164a616b30ed3b;Parent=7cd50973c4e6e15e;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 2be627c4e85d6d9d9e32a7523e1b67ee.cloudfront.net (CloudFront), 1.1 a624be98cd5b264f373d8ac17f78ee50.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "S6HG2mDDjRsOdJfDWWwUot-OUSCw0NFn1dMFVtn1jNlfSppJlOiM7w==" + } + }, + "uuid" : "a31e2d4d-6d11-4cf2-a2fc-01ba4383844a", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-6", + "newScenarioState" : "scenario-1-v1-project-7", + "insertionIndex" : 27 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json new file mode 100644 index 0000000..926257d --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json @@ -0,0 +1,46 @@ +{ + "id" : "bdcf2773-3202-41e3-b1a7-1702760bd024", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-bdcf2773-3202-41e3-b1a7-1702760bd024.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:51 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "4f41a8be-9d5f-43a3-b4cc-12a6f95d38b4", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "698545770000000020f39e58f58e5ee5", + "x-amz-apigw-id" : "YVfKqGrXIAMEAGA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854577-4778521008185faf4a3a3aaa;Parent=6970d09e5fd55a90;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 49e28fce48b0172be48e0ceea533547e.cloudfront.net (CloudFront), 1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "asZ0ecT_aYpdPVQcywzZVWdBzmFP6KrC70Wm_OPKp9UahpKPe5MzfQ==" + } + }, + "uuid" : "bdcf2773-3202-41e3-b1a7-1702760bd024", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-4", + "newScenarioState" : "scenario-1-v1-project-5", + "insertionIndex" : 20 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json new file mode 100644 index 0000000..1a7cd85 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json @@ -0,0 +1,46 @@ +{ + "id" : "cb831205-50cc-4f8d-9d88-68c8b16c8a45", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-cb831205-50cc-4f8d-9d88-68c8b16c8a45.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:52 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "8969d797-243a-4ce2-a343-a7f03e5a440f", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457800000000414dc824b56a76e9", + "x-amz-apigw-id" : "YVfK7H3RoAMEumw=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854578-5a519afd0017ff1e0aeaf9f5;Parent=45972fcf52817387;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 05717f654525d5f71688fb57ace6362a.cloudfront.net (CloudFront), 1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "mXTmu0o47Mj6TZN8v7Or1nSh4kRURGSfLjvLVN3urvES7Y1OCbF62Q==" + } + }, + "uuid" : "cb831205-50cc-4f8d-9d88-68c8b16c8a45", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-5", + "newScenarioState" : "scenario-1-v1-project-6", + "insertionIndex" : 24 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json b/src/test/resources/cassettes/braintrust/mappings/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json new file mode 100644 index 0000000..a4bd3b8 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json @@ -0,0 +1,46 @@ +{ + "id" : "e6b9eea1-a420-4603-9377-f0a3a21c8fdb", + "name" : "v1_project", + "request" : { + "url" : "/v1/project", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"name\":\"java-unit-test\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-e6b9eea1-a420-4603-9377-f0a3a21c8fdb.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:49 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "82fbcd70-8389-48d3-8323-51a2680918ec", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457500000000185ecfc720c86e24", + "x-amz-apigw-id" : "YVfKdEskoAMEGZQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854575-67929372342e2ad13501f0bb;Parent=44a3916decdec0a1;Sampled=0;Lineage=1:24be3d11:0", + "x-bt-found-existing" : "true", + "Via" : "1.1 95a087e13956fc03ffaeeaec4faa051a.cloudfront.net (CloudFront), 1.1 da32b45f2cc22dc818960285c4e91b66.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "qkw5s20DAPXJtBo8fkmiHZEcvUaH9lx8zsnsIlbwZEuo-eDd188fPA==" + } + }, + "uuid" : "e6b9eea1-a420-4603-9377-f0a3a21c8fdb", + "persistent" : true, + "scenarioName" : "scenario-1-v1-project", + "requiredScenarioState" : "scenario-1-v1-project-3", + "newScenarioState" : "scenario-1-v1-project-4", + "insertionIndex" : 17 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json new file mode 100644 index 0000000..c37597a --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json @@ -0,0 +1,35 @@ +{ + "id" : "0a75dce6-700f-46fc-837d-9870d1ac72c3", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-0a75dce6-700f-46fc-837d-9870d1ac72c3.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:00 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "1c985d19-b5ee-4def-9173-f8e650f45e9b", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854580000000002cf61a6a4fdedb66", + "x-amz-apigw-id" : "YVfMHHV_IAMEGcA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854580-182dae6436a37b497f504bc8;Parent=0230e187a92e4e34;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 59e4792b9d6184bfa491a317b36590d2.cloudfront.net (CloudFront), 1.1 83d24992402f7b214901ab76fbdc11e2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "85-_KMExJHenOlRgVA3xoO4iWjx8a7lYe47CaxXURuqo24S5v5ybPA==" + } + }, + "uuid" : "0a75dce6-700f-46fc-837d-9870d1ac72c3", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-7", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-8", + "insertionIndex" : 42 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json new file mode 100644 index 0000000..1bdd929 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json @@ -0,0 +1,35 @@ +{ + "id" : "1e4ce41b-ac1e-48c6-8af8-0e549860634a", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-1e4ce41b-ac1e-48c6-8af8-0e549860634a.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:02 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "61f58cf7-2e8a-4b68-8ad7-310cc4158b88", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854582000000006951bb4853b82cd4", + "x-amz-apigw-id" : "YVfMaHbmIAMEY0w=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854582-3387e2dc077460be5667e2ec;Parent=1000b0851ae67291;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 ddea1c07643e5e0bfceb34480eebdc52.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "jmBA2kB78fuwaWB_PqMDDL85KA7ybBlwR6RLXGTB4YyNK2SZ7osybg==" + } + }, + "uuid" : "1e4ce41b-ac1e-48c6-8af8-0e549860634a", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-8", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-9", + "insertionIndex" : 47 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json new file mode 100644 index 0000000..12a3b4c --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json @@ -0,0 +1,35 @@ +{ + "id" : "31b856b8-f9bf-4d0b-8a17-371e4b5e1274", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-31b856b8-f9bf-4d0b-8a17-371e4b5e1274.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:48 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "afb1ae13-b7ea-4809-a4be-1ccb8b5c9da2", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854574000000007d4768bbb92fb19a", + "x-amz-apigw-id" : "YVfKREjhIAMEZwg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854574-1a15bc8763a0bfd7058df5e5;Parent=77e0e4a3f5c562e3;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 c9f68a0c96944962731456040c591f26.cloudfront.net (CloudFront), 1.1 4ac8d091dce10e726cfc5404bfed72b8.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "c_uHF5bAprznDUHApu9fpZ80feoar24k3GChQx_pRZW4OUgJsYAngw==" + } + }, + "uuid" : "31b856b8-f9bf-4d0b-8a17-371e4b5e1274", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-3", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-4", + "insertionIndex" : 14 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json deleted file mode 100644 index 11d9cf0..0000000 --- a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id" : "3e4fd9ae-b027-4c4e-a714-5ba10db840dd", - "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", - "request" : { - "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", - "method" : "GET" - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-3e4fd9ae-b027-4c4e-a714-5ba10db840dd.json", - "headers" : { - "Content-Type" : "application/json; charset=utf-8", - "X-Amz-Cf-Pop" : [ "SEA900-P2", "SEA900-P10" ], - "Date" : "Fri, 23 Jan 2026 05:36:05 GMT", - "access-control-allow-credentials" : "true", - "x-amzn-RequestId" : "715743ae-8eb9-4235-a28c-fbf74121ac58", - "x-amzn-Remapped-content-length" : "352", - "x-bt-internal-trace-id" : "697308c5000000000f234b78b61b494f", - "x-amz-apigw-id" : "Xn5O-Hi-IAMEsWQ=", - "vary" : "Origin, Accept-Encoding", - "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", - "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", - "X-Amzn-Trace-Id" : "Root=1-697308c5-10ae7bd9215b2deb252c8ca1;Parent=77f8a8291cf951c4;Sampled=0;Lineage=1:24be3d11:0", - "Via" : "1.1 09a1a54fdbf13d19927a903f4a7d5186.cloudfront.net (CloudFront), 1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Id" : "cbuFSM1PKiaoTqAB6KkzUk86-V4shoX_eS44HzxuiTLJPlnKWOXang==" - } - }, - "uuid" : "3e4fd9ae-b027-4c4e-a714-5ba10db840dd", - "persistent" : true, - "insertionIndex" : 2 -} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json new file mode 100644 index 0000000..636fce0 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json @@ -0,0 +1,35 @@ +{ + "id" : "4f6686f8-f05f-4351-af96-99a7c3dfcbd0", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-4f6686f8-f05f-4351-af96-99a7c3dfcbd0.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:05 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "e1d83cba-2075-4692-81b9-3e24e54cbde1", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854585000000002516c2c6f7f72eb1", + "x-amz-apigw-id" : "YVfM4EDwIAMEOKg=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854585-67c6054909004c515e3fe708;Parent=01bb3cf81bd27cb2;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 dc8ab0490cc3f7679073e847e3aabb66.cloudfront.net (CloudFront), 1.1 83d24992402f7b214901ab76fbdc11e2.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "l775wSg0-MYPL7l26-rBkYa3se4oYDBtl52uGeJUd5dwvtiaRk6dfQ==" + } + }, + "uuid" : "4f6686f8-f05f-4351-af96-99a7c3dfcbd0", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-9", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-10", + "insertionIndex" : 54 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json new file mode 100644 index 0000000..a154105 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json @@ -0,0 +1,35 @@ +{ + "id" : "70018f0f-cdac-4235-8f4a-b03b53c01911", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-70018f0f-cdac-4235-8f4a-b03b53c01911.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:44 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "f5defcf1-5f66-4684-ac01-46653e0eff18", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854570000000005607c730cbb18dd4", + "x-amz-apigw-id" : "YVfJmEWpIAMErgA=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854570-565cb3662fbc33500c38b65a;Parent=42ccdc9c946778c8;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "cNUv5aqaaXiLvgFd4NHzJpVIxJ84Uqn8zbQ08ViVibIapd7UegiJSA==" + } + }, + "uuid" : "70018f0f-cdac-4235-8f4a-b03b53c01911", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-2", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-3", + "insertionIndex" : 7 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json new file mode 100644 index 0000000..e2095df --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json @@ -0,0 +1,35 @@ +{ + "id" : "7b383199-e157-43f4-8c31-9c3124ed755a", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-7b383199-e157-43f4-8c31-9c3124ed755a.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:54 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "9fa3d6ab-34f4-4bd6-b578-e70c413eebb4", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457a000000000fa8be2266b6b572", + "x-amz-apigw-id" : "YVfLOE6cIAMELbQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457a-7ac76a760ea758430f562ab0;Parent=73db1daa54ee6a64;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 b7d7903ada432685f0e90f0ca261d864.cloudfront.net (CloudFront), 1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "VrrpmbSiRWW4mpleLbYXAaMVg6aV37wDvL0ZLN_JBqErIqQUqOexUQ==" + } + }, + "uuid" : "7b383199-e157-43f4-8c31-9c3124ed755a", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-5", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-6", + "insertionIndex" : 28 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json new file mode 100644 index 0000000..b4e988b --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json @@ -0,0 +1,34 @@ +{ + "id" : "b92ee90f-2940-4bb9-8170-996c17c8e379", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-b92ee90f-2940-4bb9-8170-996c17c8e379.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:36:07 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "753ad7cf-e89e-4930-981c-b8eca1588fd1", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "698545870000000077b0c252704c126d", + "x-amz-apigw-id" : "YVfNPGi1IAMEeSQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854587-57d0312b7d54ef7109253762;Parent=5e73ef8be44dfdf2;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 9257f9c4051fe8bd6cc4a09855b66350.cloudfront.net (CloudFront), 1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "6auq8HTWZPGUhYtIUGdRo3byB6aBCN2Y6qzVA6AIa8JCCOWpEFptrQ==" + } + }, + "uuid" : "b92ee90f-2940-4bb9-8170-996c17c8e379", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-10", + "insertionIndex" : 59 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json new file mode 100644 index 0000000..e459a48 --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json @@ -0,0 +1,35 @@ +{ + "id" : "c00ebac1-6adc-4fe2-a623-dfb7330e5033", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-c00ebac1-6adc-4fe2-a623-dfb7330e5033.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:51 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "7e278d9e-6716-483a-b7c8-ea95a36e9a03", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "69854577000000000539f51ae7fa3342", + "x-amz-apigw-id" : "YVfKtHeTIAMESOQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-69854577-797a86db385ab87a38cebb75;Parent=4a579eb11f0e0ff9;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 2c24d855455b80190edd9e2dcdca3ee8.cloudfront.net (CloudFront), 1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "pGcs4z8e7iZhbM26BrMcueGU5-2ZPcK6sjWQNa3KXiERkykS0v1YOQ==" + } + }, + "uuid" : "c00ebac1-6adc-4fe2-a623-dfb7330e5033", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-4", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-5", + "insertionIndex" : 21 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json new file mode 100644 index 0000000..446b65e --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json @@ -0,0 +1,35 @@ +{ + "id" : "c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:58 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "612e559c-339f-4e60-9bdb-e946948a1930", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985457e000000004a0939e15c18c285", + "x-amz-apigw-id" : "YVfLxHKiIAMEaOQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985457e-6aaa58a05dd618e72c10062e;Parent=7e6d11314b551231;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 9257f9c4051fe8bd6cc4a09855b66350.cloudfront.net (CloudFront), 1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "mg-p--o7l1hqZqPOYjKcFB4sYvpDvrlxaOFVRzSOUlPx7SZ8Jk8TrA==" + } + }, + "uuid" : "c50b53d4-f3ad-4bc7-aa3c-b7494d6eca3c", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-6", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-7", + "insertionIndex" : 37 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json new file mode 100644 index 0000000..470ef3f --- /dev/null +++ b/src/test/resources/cassettes/braintrust/mappings/v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json @@ -0,0 +1,35 @@ +{ + "id" : "e5b67a0b-68ea-4145-bb3a-67915c2fabb7", + "name" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8", + "request" : { + "url" : "/v1/project/6ae68365-7620-4630-921b-bac416634fc8", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_6ae68365-7620-4630-921b-bac416634fc8-e5b67a0b-68ea-4145-bb3a-67915c2fabb7.json", + "headers" : { + "Content-Type" : "application/json; charset=utf-8", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "Date" : "Fri, 06 Feb 2026 01:35:43 GMT", + "access-control-allow-credentials" : "true", + "x-amzn-RequestId" : "0e70921d-e302-4a4d-95ce-cdb54c16aad6", + "x-amzn-Remapped-content-length" : "352", + "x-bt-internal-trace-id" : "6985456f0000000038b2aca75804a5ec", + "x-amz-apigw-id" : "YVfJdHhBoAMENpQ=", + "vary" : "Origin, Accept-Encoding", + "etag" : "W/\"160-RUdtZR434qrXxI13debDoTK1a2s\"", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan", + "X-Amzn-Trace-Id" : "Root=1-6985456f-2ac627473fe6d60f43d31da8;Parent=7f74174ace9235a5;Sampled=0;Lineage=1:24be3d11:0", + "Via" : "1.1 ec62626c4e205f1980b4ed65142b10d8.cloudfront.net (CloudFront), 1.1 e6b2537b87653726af8a79e6da505188.cloudfront.net (CloudFront)", + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Id" : "-xLPbLcEW1iu_K799mf8XM1Tu7zn1j0iml7U5ArMJ9fYF4BuReN44w==" + } + }, + "uuid" : "e5b67a0b-68ea-4145-bb3a-67915c2fabb7", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-4-v1-project-6ae68365-7620-4630-921b-bac416634fc8-2", + "insertionIndex" : 5 +} \ No newline at end of file diff --git a/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json b/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json similarity index 87% rename from src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json rename to src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json index 6bf76ee..104f33a 100644 --- a/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json +++ b/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json @@ -10,7 +10,7 @@ "role": "model" }, "finishReason": "STOP", - "avgLogprobs": -0.054125471247567072 + "avgLogprobs": -0.017841365602281358 } ], "usageMetadata": { @@ -31,5 +31,5 @@ ] }, "modelVersion": "gemini-2.0-flash-lite", - "responseId": "zghzaffCAr2dz7IPjd6imQM" + "responseId": "jkWFafPsDau-qtsP6dWX4Qk" } diff --git a/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json b/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json similarity index 87% rename from src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json rename to src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json index d729731..87972b0 100644 --- a/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json +++ b/src/test/resources/cassettes/google/__files/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json @@ -10,7 +10,7 @@ "role": "model" }, "finishReason": "STOP", - "avgLogprobs": -0.054626878350973129 + "avgLogprobs": -0.078704953193664551 } ], "usageMetadata": { @@ -31,5 +31,5 @@ ] }, "modelVersion": "gemini-2.0-flash-lite", - "responseId": "zQhzabOJBLuhz7IPvoi5sAc" + "responseId": "jEWFaZe2H4inqtsPiZCakQo" } diff --git a/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json b/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json similarity index 81% rename from src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json rename to src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json index 01f0437..fa0e674 100644 --- a/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json +++ b/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json @@ -1,5 +1,5 @@ { - "id" : "bbe54c72-90d7-4770-ac32-ee2b1bdcfc27", + "id" : "517f2182-c60e-41e3-a231-13108d9eb96e", "name" : "v1beta_models_gemini-20-flash-litegeneratecontent", "request" : { "url" : "/v1beta/models/gemini-2.0-flash-lite:generateContent", @@ -17,20 +17,20 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1beta_models_gemini-20-flash-litegeneratecontent-bbe54c72-90d7-4770-ac32-ee2b1bdcfc27.json", + "bodyFileName" : "v1beta_models_gemini-20-flash-litegeneratecontent-517f2182-c60e-41e3-a231-13108d9eb96e.json", "headers" : { "Content-Type" : "application/json; charset=UTF-8", "Vary" : [ "Origin", "X-Origin", "Referer" ], - "Date" : "Fri, 23 Jan 2026 05:36:14 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:14 GMT", "Server" : "scaffolding on HTTPServer2", "X-XSS-Protection" : "0", "X-Frame-Options" : "SAMEORIGIN", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=340", + "Server-Timing" : "gfet4t7; dur=408", "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" } }, - "uuid" : "bbe54c72-90d7-4770-ac32-ee2b1bdcfc27", + "uuid" : "517f2182-c60e-41e3-a231-13108d9eb96e", "persistent" : true, "insertionIndex" : 2 } \ No newline at end of file diff --git a/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json b/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json similarity index 81% rename from src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json rename to src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json index 62e8fca..90b0d4b 100644 --- a/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json +++ b/src/test/resources/cassettes/google/mappings/v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json @@ -1,5 +1,5 @@ { - "id" : "a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07", + "id" : "753e5806-b59e-40b8-86a7-2573e3375098", "name" : "v1beta_models_gemini-20-flash-litegeneratecontent", "request" : { "url" : "/v1beta/models/gemini-2.0-flash-lite:generateContent", @@ -17,20 +17,20 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1beta_models_gemini-20-flash-litegeneratecontent-a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07.json", + "bodyFileName" : "v1beta_models_gemini-20-flash-litegeneratecontent-753e5806-b59e-40b8-86a7-2573e3375098.json", "headers" : { "Content-Type" : "application/json; charset=UTF-8", "Vary" : [ "Origin", "X-Origin", "Referer" ], - "Date" : "Fri, 23 Jan 2026 05:36:13 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:12 GMT", "Server" : "scaffolding on HTTPServer2", "X-XSS-Protection" : "0", "X-Frame-Options" : "SAMEORIGIN", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=380", + "Server-Timing" : "gfet4t7; dur=454", "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" } }, - "uuid" : "a96a8ad5-2ea3-4afe-a2cb-409bf8e0bf07", + "uuid" : "753e5806-b59e-40b8-86a7-2573e3375098", "persistent" : true, "insertionIndex" : 1 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.txt b/src/test/resources/cassettes/openai/__files/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.txt deleted file mode 100644 index e6803a4..0000000 --- a/src/test/resources/cassettes/openai/__files/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.txt +++ /dev/null @@ -1,22 +0,0 @@ -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jS8NXSKZe"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Js3TqhAu"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Jz2"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AnZ1V706"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TS27"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TIi3l6Qr"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wW2vg"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lcsLFUWS2L"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"aayiy"} - -data: {"id":"chatcmpl-D1487Z7gvsZSSqonER8ySm2HNyhKC","object":"chat.completion.chunk","created":1769146575,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_c4585b5b9c","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"5caYMQAl22o"} - -data: [DONE] - diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.txt b/src/test/resources/cassettes/openai/__files/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.txt deleted file mode 100644 index f3ec1f6..0000000 --- a/src/test/resources/cassettes/openai/__files/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.txt +++ /dev/null @@ -1,22 +0,0 @@ -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"QMPctD3MA"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZDH7bwkm"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6EM"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ck78DMdc"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"W7tM"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Gf9inOSg"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sf7Cx"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"PDZSCfW8AE"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"EqWDj"} - -data: {"id":"chatcmpl-D148CFcgUHTYaD1ZdHpPl9Tk0yUE2","object":"chat.completion.chunk","created":1769146580,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_29330a9688","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"7DzqE0n111t"} - -data: [DONE] - diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.txt b/src/test/resources/cassettes/openai/__files/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.txt new file mode 100644 index 0000000..ca27781 --- /dev/null +++ b/src/test/resources/cassettes/openai/__files/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.txt @@ -0,0 +1,22 @@ +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LuGEnC8Jl"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hHmMwq8l"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sK1"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sB4rAjZR"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"K4fx"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wWdG4iAN"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Z9QpA"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"C9IDjtfHbo"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"M0ey3"} + +data: {"id":"chatcmpl-D653cWaKppcN4bQEy2IPAyegmspnT","object":"chat.completion.chunk","created":1770341780,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"QSgYVJjxnnK"} + +data: [DONE] + diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json b/src/test/resources/cassettes/openai/__files/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json similarity index 83% rename from src/test/resources/cassettes/openai/__files/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json rename to src/test/resources/cassettes/openai/__files/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json index 1f97dcf..72b15e8 100644 --- a/src/test/resources/cassettes/openai/__files/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json +++ b/src/test/resources/cassettes/openai/__files/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-D1488Eu9ZBPsuAAbqFou0rdKplKq6", + "id": "chatcmpl-D653YGmZE46di7ziFJe18vlydoZ9Q", "object": "chat.completion", - "created": 1769146576, + "created": 1770341776, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -11,7 +11,7 @@ "content": null, "tool_calls": [ { - "id": "call_YANyIGtCtTJowRa5Emu3rNQp", + "id": "call_YzbAAzdr4ySxeran5EC1tnLA", "type": "function", "function": { "name": "getWeather", @@ -19,7 +19,7 @@ } }, { - "id": "call_qTfvi4D3JjATbUYoQd84Hbnf", + "id": "call_pTRAN2h3fOCmCv07K4WXN9Th", "type": "function", "function": { "name": "getWeather", @@ -50,5 +50,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_c4585b5b9c" + "system_fingerprint": "fp_f4ae844694" } diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json b/src/test/resources/cassettes/openai/__files/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json similarity index 86% rename from src/test/resources/cassettes/openai/__files/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json rename to src/test/resources/cassettes/openai/__files/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json index 16156c7..0ff0423 100644 --- a/src/test/resources/cassettes/openai/__files/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json +++ b/src/test/resources/cassettes/openai/__files/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-D148DkNpJKm9pxT5Afq9fO3Tw0pos", + "id": "chatcmpl-D653dGF9FWLjGaXoEFk5fTTTthDYQ", "object": "chat.completion", - "created": 1769146581, + "created": 1770341781, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_29330a9688" + "system_fingerprint": "fp_f4ae844694" } diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json b/src/test/resources/cassettes/openai/__files/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json similarity index 86% rename from src/test/resources/cassettes/openai/__files/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json rename to src/test/resources/cassettes/openai/__files/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json index 9228df0..bb60537 100644 --- a/src/test/resources/cassettes/openai/__files/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json +++ b/src/test/resources/cassettes/openai/__files/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-D148BsNl5OIpVvrqmECQ4fLoxjJUv", + "id": "chatcmpl-D653a8SACkJIk3wPsTiV6OdnNLma5", "object": "chat.completion", - "created": 1769146579, + "created": 1770341778, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_29330a9688" + "system_fingerprint": "fp_f4ae844694" } diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.txt b/src/test/resources/cassettes/openai/__files/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.txt new file mode 100644 index 0000000..8e1ac0f --- /dev/null +++ b/src/test/resources/cassettes/openai/__files/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.txt @@ -0,0 +1,22 @@ +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"mQLFTBYM5"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TOrivhDz"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nog"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cL84urcK"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lZPM"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BxFaIeI6"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FwT8Y"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"mP1pNm2JEx"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"yDR9c"} + +data: {"id":"chatcmpl-D653XANy5irqpFGzrzHdY0tML5qHY","object":"chat.completion.chunk","created":1770341775,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_f4ae844694","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"p37WlEX0Qg5"} + +data: [DONE] + diff --git a/src/test/resources/cassettes/openai/__files/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json b/src/test/resources/cassettes/openai/__files/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json similarity index 66% rename from src/test/resources/cassettes/openai/__files/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json rename to src/test/resources/cassettes/openai/__files/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json index f28c5f6..9ce7586 100644 --- a/src/test/resources/cassettes/openai/__files/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json +++ b/src/test/resources/cassettes/openai/__files/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json @@ -1,14 +1,14 @@ { - "id": "chatcmpl-D148A41Uq23LlobqzgVVmSYJM9bL6", + "id": "chatcmpl-D653ZkU9LZTvKgEZ49MbWcI5oXxcZ", "object": "chat.completion", - "created": 1769146578, + "created": 1770341777, "model": "gpt-4o-mini-2024-07-18", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The current temperature in both Paris and New York is 72°F, so it is equally hot in both cities right now.", + "content": "The current temperature is the same in both Paris and New York, at 72°F, and both cities are experiencing sunny weather.", "refusal": null, "annotations": [] }, @@ -18,8 +18,8 @@ ], "usage": { "prompt_tokens": 177, - "completion_tokens": 26, - "total_tokens": 203, + "completion_tokens": 27, + "total_tokens": 204, "prompt_tokens_details": { "cached_tokens": 0, "audio_tokens": 0 @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_c4585b5b9c" + "system_fingerprint": "fp_f4ae844694" } diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.json b/src/test/resources/cassettes/openai/mappings/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.json similarity index 66% rename from src/test/resources/cassettes/openai/mappings/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.json index 96ad058..33c975c 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.json @@ -1,5 +1,5 @@ { - "id" : "0663776c-5dfc-4fb8-9904-6a415fca9550", + "id" : "0fd25afb-1ebc-46bb-8e2b-6abda5e9c571", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -17,34 +17,33 @@ }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-0663776c-5dfc-4fb8-9904-6a415fca9550.txt", + "bodyFileName" : "chat_completions-0fd25afb-1ebc-46bb-8e2b-6abda5e9c571.txt", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:20 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:20 GMT", "Content-Type" : "text/event-stream; charset=utf-8", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "250", + "openai-processing-ms" : "223", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "354", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", "x-ratelimit-remaining-tokens" : "149999982", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_0b00db9feb0e4ef58a01bb7ac876bf4f", + "x-request-id" : "req_690469552a284267bd8d1ba46ed5982e", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=bYIPyEKfuTm409VPkQCtLzpmMg2nxTeFyykwHWGgA_U-1769146580-1.0.1.1-ZCCSd64AQcFy.CRADYK_IVDPXnmNu2C29QtbMdjQJri.6VVxE054Zig.XR4WT6pKbmLQ7pVUaeDFxZz12wNcgNs86ZhgjFV0FWwVoMKtowU; path=/; expires=Fri, 23-Jan-26 06:06:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=FxzNO4rIHjSTd7qpLrk6jpjSoK0E50RPpOkalVDhcmY-1769146580890-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=87aMOxNW8yN9Qr2.LJNm7ePuJ_o2mN3APG6vHQMSA3o-1770341780-1.0.1.1-KdzLH_pIbI7S0Oa7Sipbx1JossZQ7C7Chp1E1xqYljvQFsP0Gho2YyMY5sMQJNoJse.YubcoHIvsUGDOFHS5irilJXGRZKs2izclPv9ewao; path=/; expires=Fri, 06-Feb-26 02:06:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=zKQ6h__MmEXHOkbV11ZCImUv8RWwqgX_RK.tFWzcKbU-1770341780414-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eecfec977688-SEA", + "CF-RAY" : "9c96ea7cde2f760a-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "0663776c-5dfc-4fb8-9904-6a415fca9550", + "uuid" : "0fd25afb-1ebc-46bb-8e2b-6abda5e9c571", "persistent" : true, "insertionIndex" : 5 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json b/src/test/resources/cassettes/openai/mappings/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json similarity index 74% rename from src/test/resources/cassettes/openai/mappings/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json index 25e3f4f..66206e0 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json @@ -1,5 +1,5 @@ { - "id" : "c881e7aa-85d0-4de6-92ec-da5dbed72027", + "id" : "5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -17,34 +17,33 @@ }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-c881e7aa-85d0-4de6-92ec-da5dbed72027.json", + "bodyFileName" : "chat_completions-5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89.json", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:17 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:16 GMT", "Content-Type" : "application/json", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "1236", + "openai-processing-ms" : "799", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "1377", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", "x-ratelimit-remaining-tokens" : "149999987", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_45a7f0c5ca6949b0bf20035b8f02624c", + "x-request-id" : "req_6bbd8ab0b4a249c9a7142f30781b3d5d", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=jwB44RgFskbI4cQEbTE4psDX8Bq7z9G4PeMDMVeabPY-1769146577-1.0.1.1-BEkhAl3uAVtQ7rCMUL33pBAwd_xCsE9R5LsuuZ0tfGKrKKVns6CWIE6tWgyzvQg1gEGEqr5sByC.2GNfPOokiDdjLwAbQSWE95Bc1yGCB5k; path=/; expires=Fri, 23-Jan-26 06:06:17 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=QFttWNtqPpE05MC54d0ecFgzddWNtjmW6TCvrc1wKCI-1769146577730-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=XjI3DqNZ1vRH7gPUXctw2IIlMhuilpWJhDeUrY14q4I-1770341776-1.0.1.1-Tp6P7FkVXsdKyMYWbUW3S2c0XurtqTd5LSss8dxM51XnD6VCN.FVxKpTnNNmbaeSYGr8x_9r88MA7WrZHfUEqnXu73fnUkskLpTo3d27MWs; path=/; expires=Fri, 06-Feb-26 02:06:16 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=za10HYrLqYOyc4T_qGA5sLm1emv5ctw.t.M714ARikc-1770341776978-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eeb3685db9c2-SEA", + "CF-RAY" : "9c96ea647844585c-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "c881e7aa-85d0-4de6-92ec-da5dbed72027", + "uuid" : "5cf46c74-afbb-4ecc-af6e-a9cd9c8d5f89", "persistent" : true, "insertionIndex" : 2 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json b/src/test/resources/cassettes/openai/mappings/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json similarity index 63% rename from src/test/resources/cassettes/openai/mappings/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json index b5687b6..51da75d 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json @@ -1,5 +1,5 @@ { - "id" : "2446f774-b17e-4abf-811c-6a10681dbf94", + "id" : "6cf15a16-7fb3-4736-8688-ba6114656e9a", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -17,34 +17,33 @@ }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-2446f774-b17e-4abf-811c-6a10681dbf94.json", + "bodyFileName" : "chat_completions-6cf15a16-7fb3-4736-8688-ba6114656e9a.json", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:22 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:21 GMT", "Content-Type" : "application/json", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "306", + "openai-processing-ms" : "321", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "449", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "149999980", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_ff8b6d5e346e4ed885fa0898a92f6a0a", + "x-request-id" : "req_38c889b84f574fb5b1028dfd56c26244", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=kjb4Pwx.qIHTEO4OoD_3xTOpJaGW5fSOiU9zwXB7Wv0-1769146582-1.0.1.1-_giyGbaRzHz_9IYno8kYmmpV5GhMPud1LXIByQIEgG8APuGOgEUkvEDSKj2dRkBlXJpEJzExftWl1TuKPsAZjOdWnpKG6J5A2neSGHGcMdg; path=/; expires=Fri, 23-Jan-26 06:06:22 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=v9TvVXzQKYp5xe.IdnuOzXZvKFmYXxiIw85Hif87nPc-1769146582202-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=yYrDM1RSdEfNF3ZVzYcMW2N6G.FmRHRihUVKK_3mXJ4-1770341781-1.0.1.1-E.CbANNGIU5W33Y1bYK74j8AxjgzfBaBpkaJnYse3B746iX0INENAKhXJJfYO8OYDO5WBs4Tz1J0HPvDgn4lDI7AdWqm8ExQ2aCeyMUo0lc; path=/; expires=Fri, 06-Feb-26 02:06:21 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=BguPf03mRueRCwLDtmRrRG121YvYnDXYxf9_HgAu5k8-1770341781612-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eed52936a366-SEA", + "CF-RAY" : "9c96ea846ea2767c-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "2446f774-b17e-4abf-811c-6a10681dbf94", + "uuid" : "6cf15a16-7fb3-4736-8688-ba6114656e9a", "persistent" : true, "insertionIndex" : 6 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json b/src/test/resources/cassettes/openai/mappings/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json similarity index 65% rename from src/test/resources/cassettes/openai/mappings/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json index 21a14ed..81ac084 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json @@ -1,5 +1,5 @@ { - "id" : "d0bef16c-03e9-44da-ab7e-a72110eb2028", + "id" : "7095a20a-de09-4685-a809-36df048b9fec", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -17,34 +17,33 @@ }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-d0bef16c-03e9-44da-ab7e-a72110eb2028.json", + "bodyFileName" : "chat_completions-7095a20a-de09-4685-a809-36df048b9fec.json", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:20 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:18 GMT", "Content-Type" : "application/json", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "297", + "openai-processing-ms" : "335", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "460", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", "x-ratelimit-remaining-tokens" : "149999990", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_af046753669347ffb931da8968d60d3b", + "x-request-id" : "req_63f1f31969a24392b9321e22c78c6f07", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=z3G4hl.rYDWjZse9PNgVi0tZLHDR5O04WdLkkXpMVj4-1769146580-1.0.1.1-OHy5BXW1875sGlXQoo9Hqe_L9qiG0bWF3MEs5p7v8r8lugfjzZ77qfXVl3V0UTnQdI0SBO55T5uO8snJgq8ybHHhVne9KfoWIUhEQiUVjl8; path=/; expires=Fri, 23-Jan-26 06:06:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=pzSfHK3yGW2i0qHi7.SbpjutNAXNegUcggHRzVxYzWQ-1769146580232-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=MIWH2y1CU2R.5YhpQ28fiRZW6Ir87kbrxPOhtrDPkss-1770341778-1.0.1.1-x36TgiErdgmJTLFBciUOWnRjSyR8jFpN9x34ZvpvJeqZbnIBBYCwFaRHq00Q3NEN6tSl4t6OiTP5IbXOSEJ.h6srxo._BK8aY6WKL325VAM; path=/; expires=Fri, 06-Feb-26 02:06:18 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=gn.6SFFpnXGacoiMQaYElP0BuDhpJEtZJ2ITHVQyZ68-1770341778868-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eec918c9dede-SEA", + "CF-RAY" : "9c96ea734b1bdef1-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "d0bef16c-03e9-44da-ab7e-a72110eb2028", + "uuid" : "7095a20a-de09-4685-a809-36df048b9fec", "persistent" : true, "insertionIndex" : 4 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.json b/src/test/resources/cassettes/openai/mappings/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.json similarity index 66% rename from src/test/resources/cassettes/openai/mappings/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.json index b4bb002..a9af437 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.json @@ -1,5 +1,5 @@ { - "id" : "01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4", + "id" : "d781668b-1e85-4778-96d7-6128948fa82c", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -17,34 +17,33 @@ }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4.txt", + "bodyFileName" : "chat_completions-d781668b-1e85-4778-96d7-6128948fa82c.txt", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:15 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:15 GMT", "Content-Type" : "text/event-stream; charset=utf-8", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "262", + "openai-processing-ms" : "220", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "375", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", "x-ratelimit-remaining-tokens" : "149999990", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_3b6df98ab842452ba801ae44d01fb3e2", + "x-request-id" : "req_d11938ca5cbd41f8810f2879a75b09f1", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=2X0RC1RS9O3oPKF5RMJ4HK8nCbsE1ELw9sKno3wraUY-1769146575-1.0.1.1-qa6h7i46YVaDkApDd_dB5nXg37Kjis81F1KLj_TntBl4r7sN8AH9D4zRGSpU2hgtq69l35IVJIrDrIk28HAX.Jm6NHnnhsC6Xtxn4tIDjeo; path=/; expires=Fri, 23-Jan-26 06:06:15 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=RCbXCG2kNzL2y4V2kRg4reQXbnvNOHX.sty8iEMCicg-1769146575546-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=4j9XcaCYKxO1ZXkkUdC8v0YhpTtl68YKTTfiFrXLpIQ-1770341775-1.0.1.1-AHOYvTsQ.QQOGXC3c.svKA.8zidrFdizNocWeA5w3Z5sCp7Gzo2lJIAN_ZctvXstH4aCN3J5YURWz88F1UKOSuENFdExLfa_E7bnautAAbA; path=/; expires=Fri, 06-Feb-26 02:06:15 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=9AfdwXkVG0coY3YFT_Tkfgw5jUvodNQQPTW1Lv9giQo-1770341775701-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eeaca80e7209-SEA", + "CF-RAY" : "9c96ea5ff94cd456-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "01f57d6d-f85b-4093-8dcf-2aa7a75c2ab4", + "uuid" : "d781668b-1e85-4778-96d7-6128948fa82c", "persistent" : true, "insertionIndex" : 1 } \ No newline at end of file diff --git a/src/test/resources/cassettes/openai/mappings/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json b/src/test/resources/cassettes/openai/mappings/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json similarity index 72% rename from src/test/resources/cassettes/openai/mappings/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json rename to src/test/resources/cassettes/openai/mappings/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json index 8f2b465..1632786 100644 --- a/src/test/resources/cassettes/openai/mappings/chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json +++ b/src/test/resources/cassettes/openai/mappings/chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json @@ -1,5 +1,5 @@ { - "id" : "80cbaecd-6aec-4d80-a719-c572a45d9d82", + "id" : "ecfc7545-9b98-4fe2-8df0-3a007ffc349f", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,41 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_YANyIGtCtTJowRa5Emu3rNQp\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_qTfvi4D3JjATbUYoQd84Hbnf\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_YANyIGtCtTJowRa5Emu3rNQp\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_qTfvi4D3JjATbUYoQd84Hbnf\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n } ]\n}", + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_YzbAAzdr4ySxeran5EC1tnLA\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_pTRAN2h3fOCmCv07K4WXN9Th\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_YzbAAzdr4ySxeran5EC1tnLA\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_pTRAN2h3fOCmCv07K4WXN9Th\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n } ]\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-80cbaecd-6aec-4d80-a719-c572a45d9d82.json", + "bodyFileName" : "chat_completions-ecfc7545-9b98-4fe2-8df0-3a007ffc349f.json", "headers" : { - "Date" : "Fri, 23 Jan 2026 05:36:19 GMT", + "Date" : "Fri, 06 Feb 2026 01:36:18 GMT", "Content-Type" : "application/json", "access-control-expose-headers" : "X-Request-ID", "openai-organization" : "braintrust-data", - "openai-processing-ms" : "803", + "openai-processing-ms" : "617", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "openai-version" : "2020-10-01", - "x-envoy-upstream-service-time" : "935", "x-ratelimit-limit-requests" : "30000", "x-ratelimit-limit-tokens" : "150000000", "x-ratelimit-remaining-requests" : "29999", "x-ratelimit-remaining-tokens" : "149999955", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-reset-tokens" : "0s", - "x-request-id" : "req_e102c2cce7804951971407ff595137bb", + "x-request-id" : "req_2cc5b6b54c944a6d86ca14434d6f464c", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Set-Cookie" : [ "__cf_bm=YNdj5EqdOkbf3kW7UwY85FeszzF4Hqdrrd7SgsnlrWA-1769146579-1.0.1.1-tBNepI43o2C3UdWbmqNH3UsvsJwtA4ulBudNkwhcodCsKIVzlRJbL_8O1nu1llUXs3KSfyqyc5QSClpxxZsTLiNlne.M7kR1OfoJSUcs4Kk; path=/; expires=Fri, 23-Jan-26 06:06:19 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=2J72JctaoJwYevB_t8pgB89EJH0tGa.ZQyc2GiCdy4k-1769146579229-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], + "Set-Cookie" : [ "__cf_bm=HLdw6nc62RZA99tAs9L66HJKodpKTnUljrBInL0SD_8-1770341778-1.0.1.1-r4FTsygoIhATE39fQsFXR6R8KHNbevms3yDvYtvIj.0G_zIIdzsSYQhfAbox5apjEMaT6B.NkjA6KXCDs3nc265PePZDNDN9py5Q4eJXeQY; path=/; expires=Fri, 06-Feb-26 02:06:18 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None", "_cfuvid=aWGmMd4GSIiHjyI7KrFKGG.64rANvRdL8S.O8Nfmzv4-1770341778140-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "X-Content-Type-Options" : "nosniff", "Server" : "cloudflare", - "CF-RAY" : "9c24eebfcd07ad72-SEA", + "CF-RAY" : "9c96ea6ceb7e680e-SEA", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "80cbaecd-6aec-4d80-a719-c572a45d9d82", + "uuid" : "ecfc7545-9b98-4fe2-8df0-3a007ffc349f", "persistent" : true, "insertionIndex" : 3 } \ No newline at end of file