braintrust 3.26.0 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dev/dist/index.d.mts +519 -186
- package/dev/dist/index.d.ts +519 -186
- package/dev/dist/index.js +3727 -1526
- package/dev/dist/index.mjs +2815 -614
- package/dist/apply-auto-instrumentation.js +372 -261
- package/dist/apply-auto-instrumentation.mjs +171 -60
- package/dist/auto-instrumentations/bundler/esbuild.cjs +458 -61
- package/dist/auto-instrumentations/bundler/esbuild.mjs +5 -4
- package/dist/auto-instrumentations/bundler/next.cjs +460 -63
- package/dist/auto-instrumentations/bundler/next.mjs +6 -5
- package/dist/auto-instrumentations/bundler/rollup.cjs +458 -61
- package/dist/auto-instrumentations/bundler/rollup.mjs +5 -4
- package/dist/auto-instrumentations/bundler/vite.cjs +487 -62
- package/dist/auto-instrumentations/bundler/vite.mjs +34 -5
- package/dist/auto-instrumentations/bundler/webpack-loader.cjs +444 -61
- package/dist/auto-instrumentations/bundler/webpack.cjs +458 -61
- package/dist/auto-instrumentations/bundler/webpack.mjs +6 -5
- package/dist/auto-instrumentations/{chunk-6E22MYSW.mjs → chunk-26PKVUKB.mjs} +109 -5
- package/dist/auto-instrumentations/{chunk-AKKPLXTP.mjs → chunk-2AMDGD65.mjs} +160 -57
- package/dist/auto-instrumentations/{chunk-V5LEODRX.mjs → chunk-HD35AM3M.mjs} +1 -1
- package/dist/auto-instrumentations/{chunk-XYN63IG5.mjs → chunk-I55G56ZL.mjs} +21 -58
- package/dist/auto-instrumentations/{chunk-NRE4QUQR.mjs → chunk-JPUFNW7X.mjs} +140 -0
- package/dist/auto-instrumentations/{chunk-XZHHE4Y3.mjs → chunk-NP7V4XB2.mjs} +157 -3
- package/dist/auto-instrumentations/hook.mjs +396 -32
- package/dist/auto-instrumentations/index.cjs +298 -2
- package/dist/auto-instrumentations/index.d.mts +5 -1
- package/dist/auto-instrumentations/index.d.ts +5 -1
- package/dist/auto-instrumentations/index.mjs +6 -2
- package/dist/auto-instrumentations/loader/cjs-patch.cjs +105 -57
- package/dist/auto-instrumentations/loader/cjs-patch.mjs +2 -2
- package/dist/auto-instrumentations/loader/esm-hook.mjs +1 -1
- package/dist/browser.d.mts +683 -56
- package/dist/browser.d.ts +683 -56
- package/dist/browser.js +4242 -655
- package/dist/browser.mjs +4242 -655
- package/dist/{chunk-VYNNEKSA.js → chunk-BBE7SNRV.js} +248 -10
- package/dist/{chunk-VRZZQPAA.js → chunk-OBBWQW6K.js} +3351 -1392
- package/dist/{chunk-XIZOM2HO.mjs → chunk-UPFNQCGB.mjs} +2419 -460
- package/dist/{chunk-PN7EWK66.mjs → chunk-ZHUHZWFY.mjs} +241 -3
- package/dist/cli.js +2867 -668
- package/dist/edge-light.d.mts +1 -1
- package/dist/edge-light.d.ts +1 -1
- package/dist/edge-light.js +4242 -655
- package/dist/edge-light.mjs +4242 -655
- package/dist/index.d.mts +1267 -640
- package/dist/index.d.ts +1267 -640
- package/dist/index.js +2107 -630
- package/dist/index.mjs +1649 -172
- package/dist/instrumentation/index.d.mts +198 -6
- package/dist/instrumentation/index.d.ts +198 -6
- package/dist/instrumentation/index.js +2661 -581
- package/dist/instrumentation/index.mjs +2661 -581
- package/dist/vitest-evals-reporter.js +45 -43
- package/dist/vitest-evals-reporter.mjs +5 -3
- package/dist/workerd.d.mts +1 -1
- package/dist/workerd.d.ts +1 -1
- package/dist/workerd.js +4242 -655
- package/dist/workerd.mjs +4242 -655
- package/package.json +2 -3
- package/util/dist/index.d.mts +1545 -100
- package/util/dist/index.d.ts +1545 -100
|
@@ -34,7 +34,7 @@ __export(next_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(next_exports);
|
|
36
36
|
var import_node_module = require("module");
|
|
37
|
-
var
|
|
37
|
+
var import_node_path2 = require("path");
|
|
38
38
|
|
|
39
39
|
// src/auto-instrumentations/bundler/plugin.ts
|
|
40
40
|
var import_unplugin = require("unplugin");
|
|
@@ -57,8 +57,10 @@ var GLOBAL_INSTRUMENTATION_HOOKS_KEY = "__braintrust_instrumentation_hooks";
|
|
|
57
57
|
var GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION = 1;
|
|
58
58
|
var GLOBAL_INSTRUMENTATION_HOOKS_REGISTRY_BRAND = "braintrust.global-instrumentation-hooks.registry";
|
|
59
59
|
var GLOBAL_INSTRUMENTATION_HOOK_BRAND = "braintrust.global-instrumentation-hooks.hook";
|
|
60
|
+
var GLOBAL_INVOCATION_HOOK_BRAND = "braintrust.global-instrumentation-hooks.invocation-hook";
|
|
60
61
|
var registryBrand = Symbol.for(GLOBAL_INSTRUMENTATION_HOOKS_REGISTRY_BRAND);
|
|
61
62
|
var hookBrand = Symbol.for(GLOBAL_INSTRUMENTATION_HOOK_BRAND);
|
|
63
|
+
var invocationHookBrand = Symbol.for(GLOBAL_INVOCATION_HOOK_BRAND);
|
|
62
64
|
var errorReporter;
|
|
63
65
|
function reportError(error) {
|
|
64
66
|
try {
|
|
@@ -194,12 +196,69 @@ var traceEvents = [
|
|
|
194
196
|
"asyncEnd",
|
|
195
197
|
"error"
|
|
196
198
|
];
|
|
199
|
+
function traceInvocation(hook, operator, target, thisArg, args, additional, callbackIndex = -1) {
|
|
200
|
+
const context = {
|
|
201
|
+
...additional,
|
|
202
|
+
arguments: args,
|
|
203
|
+
self: thisArg
|
|
204
|
+
};
|
|
205
|
+
const invoke = () => hook.invoke(target, thisArg, args, additional);
|
|
206
|
+
if (operator === "traceCallback") {
|
|
207
|
+
return hook.traceCallback(invoke, callbackIndex, context);
|
|
208
|
+
}
|
|
209
|
+
if (operator === "tracePromise") {
|
|
210
|
+
return hook.tracePromise(invoke, context);
|
|
211
|
+
}
|
|
212
|
+
return hook.traceSync(invoke, context);
|
|
213
|
+
}
|
|
214
|
+
var InvocationHook = class {
|
|
215
|
+
interceptors = [];
|
|
216
|
+
get hasInterceptors() {
|
|
217
|
+
return this.interceptors.length > 0;
|
|
218
|
+
}
|
|
219
|
+
intercept(interceptor) {
|
|
220
|
+
if (typeof interceptor !== "function") {
|
|
221
|
+
throw new TypeError("interceptor must be a function");
|
|
222
|
+
}
|
|
223
|
+
this.interceptors = [...this.interceptors, interceptor];
|
|
224
|
+
let active = true;
|
|
225
|
+
return () => {
|
|
226
|
+
if (!active) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
active = false;
|
|
230
|
+
const index = this.interceptors.indexOf(interceptor);
|
|
231
|
+
if (index !== -1) {
|
|
232
|
+
this.interceptors = [
|
|
233
|
+
...this.interceptors.slice(0, index),
|
|
234
|
+
...this.interceptors.slice(index + 1)
|
|
235
|
+
];
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
invoke(target, thisArg, args, additional) {
|
|
240
|
+
const interceptors = this.interceptors;
|
|
241
|
+
if (interceptors.length === 0) {
|
|
242
|
+
return Reflect.apply(target, thisArg, args);
|
|
243
|
+
}
|
|
244
|
+
let next = target;
|
|
245
|
+
for (let index = interceptors.length - 1; index >= 0; index -= 1) {
|
|
246
|
+
const interceptor = interceptors[index];
|
|
247
|
+
const downstream = next;
|
|
248
|
+
next = function(...nextArgs) {
|
|
249
|
+
return interceptor(downstream, this, nextArgs, additional);
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
return Reflect.apply(next, thisArg, args);
|
|
253
|
+
}
|
|
254
|
+
};
|
|
197
255
|
var TracingHook = class {
|
|
198
256
|
start;
|
|
199
257
|
end;
|
|
200
258
|
asyncStart;
|
|
201
259
|
asyncEnd;
|
|
202
260
|
error;
|
|
261
|
+
invocationHook = new InvocationHook();
|
|
203
262
|
constructor(nameOrChannels) {
|
|
204
263
|
Object.defineProperty(this, hookBrand, {
|
|
205
264
|
configurable: false,
|
|
@@ -207,6 +266,12 @@ var TracingHook = class {
|
|
|
207
266
|
value: GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION,
|
|
208
267
|
writable: false
|
|
209
268
|
});
|
|
269
|
+
Object.defineProperty(this, invocationHookBrand, {
|
|
270
|
+
configurable: false,
|
|
271
|
+
enumerable: false,
|
|
272
|
+
value: GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION,
|
|
273
|
+
writable: false
|
|
274
|
+
});
|
|
210
275
|
if (typeof nameOrChannels === "string") {
|
|
211
276
|
this.start = new HookChannel(`tracing:${nameOrChannels}:start`);
|
|
212
277
|
this.end = new HookChannel(`tracing:${nameOrChannels}:end`);
|
|
@@ -224,6 +289,26 @@ var TracingHook = class {
|
|
|
224
289
|
get hasSubscribers() {
|
|
225
290
|
return this.start.hasSubscribers || this.end.hasSubscribers || this.asyncStart.hasSubscribers || this.asyncEnd.hasSubscribers || this.error.hasSubscribers;
|
|
226
291
|
}
|
|
292
|
+
get hasInterceptors() {
|
|
293
|
+
return this.invocationHook.hasInterceptors;
|
|
294
|
+
}
|
|
295
|
+
intercept(interceptor) {
|
|
296
|
+
return this.invocationHook.intercept(interceptor);
|
|
297
|
+
}
|
|
298
|
+
invoke(target, thisArg, args, additional) {
|
|
299
|
+
return this.invocationHook.invoke(target, thisArg, args, additional);
|
|
300
|
+
}
|
|
301
|
+
traceInvocation(operator, target, thisArg, args, additional, callbackIndex = -1) {
|
|
302
|
+
return traceInvocation(
|
|
303
|
+
this,
|
|
304
|
+
operator,
|
|
305
|
+
target,
|
|
306
|
+
thisArg,
|
|
307
|
+
args,
|
|
308
|
+
additional,
|
|
309
|
+
callbackIndex
|
|
310
|
+
);
|
|
311
|
+
}
|
|
227
312
|
subscribe(handlers) {
|
|
228
313
|
for (const eventName of traceEvents) {
|
|
229
314
|
const handler = handlers[eventName];
|
|
@@ -445,6 +530,60 @@ function hasTracingHookShape(value) {
|
|
|
445
530
|
return false;
|
|
446
531
|
}
|
|
447
532
|
}
|
|
533
|
+
function hasInvocationHookShape(value) {
|
|
534
|
+
if (typeof value !== "object" && typeof value !== "function" || value === null) {
|
|
535
|
+
return false;
|
|
536
|
+
}
|
|
537
|
+
try {
|
|
538
|
+
const hook = value;
|
|
539
|
+
return value[invocationHookBrand] === GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION && typeof hook.hasInterceptors === "boolean" && typeof hook.intercept === "function" && typeof hook.invoke === "function";
|
|
540
|
+
} catch {
|
|
541
|
+
return false;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
function installInvocationHook(value) {
|
|
545
|
+
const hasInvocationHook = hasInvocationHookShape(value);
|
|
546
|
+
const invocationHook = new InvocationHook();
|
|
547
|
+
try {
|
|
548
|
+
if (!hasInvocationHook) {
|
|
549
|
+
Object.defineProperties(value, {
|
|
550
|
+
[invocationHookBrand]: {
|
|
551
|
+
configurable: false,
|
|
552
|
+
enumerable: false,
|
|
553
|
+
value: GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION,
|
|
554
|
+
writable: false
|
|
555
|
+
},
|
|
556
|
+
hasInterceptors: {
|
|
557
|
+
configurable: false,
|
|
558
|
+
enumerable: false,
|
|
559
|
+
get: () => invocationHook.hasInterceptors
|
|
560
|
+
},
|
|
561
|
+
intercept: {
|
|
562
|
+
configurable: false,
|
|
563
|
+
enumerable: false,
|
|
564
|
+
value: invocationHook.intercept.bind(invocationHook),
|
|
565
|
+
writable: false
|
|
566
|
+
},
|
|
567
|
+
invoke: {
|
|
568
|
+
configurable: false,
|
|
569
|
+
enumerable: false,
|
|
570
|
+
value: invocationHook.invoke.bind(invocationHook),
|
|
571
|
+
writable: false
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
if (typeof value.traceInvocation !== "function") {
|
|
576
|
+
Object.defineProperty(value, "traceInvocation", {
|
|
577
|
+
configurable: false,
|
|
578
|
+
enumerable: false,
|
|
579
|
+
value: traceInvocation.bind(void 0, value),
|
|
580
|
+
writable: false
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
} catch (error) {
|
|
584
|
+
reportError(error);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
448
587
|
function isCompatibleTracingHook(value) {
|
|
449
588
|
try {
|
|
450
589
|
return value[hookBrand] === GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION && hasTracingHookShape(value);
|
|
@@ -531,6 +670,7 @@ function newGlobalTracingChannel(nameOrChannels) {
|
|
|
531
670
|
return inertTracingHook;
|
|
532
671
|
}
|
|
533
672
|
if (isCompatibleTracingHook(existing)) {
|
|
673
|
+
installInvocationHook(existing);
|
|
534
674
|
return existing;
|
|
535
675
|
}
|
|
536
676
|
if (existing !== void 0) {
|
|
@@ -567,8 +707,7 @@ var transforms = {
|
|
|
567
707
|
tracingHookDeclaration(state, node) {
|
|
568
708
|
const {
|
|
569
709
|
channelName,
|
|
570
|
-
module: { name }
|
|
571
|
-
operator
|
|
710
|
+
module: { name }
|
|
572
711
|
} = state;
|
|
573
712
|
const channelVariable = formatChannelVariable(channelName);
|
|
574
713
|
const channelGetter = formatChannelGetter(channelName);
|
|
@@ -581,7 +720,7 @@ var transforms = {
|
|
|
581
720
|
return;
|
|
582
721
|
}
|
|
583
722
|
const sharedHookLookup = hasSharedHookLookup ? "" : `
|
|
584
|
-
const ${SHARED_HOOK_LOOKUP} = (__bt$hookName
|
|
723
|
+
const ${SHARED_HOOK_LOOKUP} = (__bt$hookName) => {
|
|
585
724
|
try {
|
|
586
725
|
const __bt$hooks = globalThis[${JSON.stringify(
|
|
587
726
|
GLOBAL_INSTRUMENTATION_HOOKS_KEY
|
|
@@ -603,8 +742,7 @@ var transforms = {
|
|
|
603
742
|
__bt$hook[Symbol.for(${JSON.stringify(
|
|
604
743
|
GLOBAL_INSTRUMENTATION_HOOK_BRAND
|
|
605
744
|
)})] !== ${GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION} ||
|
|
606
|
-
typeof __bt$hook.
|
|
607
|
-
typeof __bt$hook[__bt$operator] !== "function"
|
|
745
|
+
typeof __bt$hook.traceInvocation !== "function"
|
|
608
746
|
) return undefined;
|
|
609
747
|
return __bt$hook;
|
|
610
748
|
} catch {
|
|
@@ -617,8 +755,7 @@ var transforms = {
|
|
|
617
755
|
let ${channelVariable};
|
|
618
756
|
const ${channelGetter} = () =>
|
|
619
757
|
${channelVariable} ??= ${SHARED_HOOK_LOOKUP}(
|
|
620
|
-
${JSON.stringify(`orchestrion:${name}:${channelName}`)}
|
|
621
|
-
${JSON.stringify(operator)}
|
|
758
|
+
${JSON.stringify(`orchestrion:${name}:${channelName}`)}
|
|
622
759
|
);
|
|
623
760
|
`;
|
|
624
761
|
const sharedHookLookupIndex = node.body.findIndex(
|
|
@@ -693,28 +830,18 @@ function traceInstanceMethod(state, node, program) {
|
|
|
693
830
|
ctor.value.body.body.push(...ctorBody);
|
|
694
831
|
}
|
|
695
832
|
function wrap(state, node) {
|
|
696
|
-
const
|
|
697
|
-
const wrapper = operator === "traceCallback" ? wrapCallback(state) : operator === "tracePromise" ? wrapPromise(state) : wrapSync(state);
|
|
833
|
+
const wrapper = wrapInvocation(state);
|
|
698
834
|
const block = wrapper.body[0].body;
|
|
699
835
|
const common = (0, import_meriyah.parse)(
|
|
700
836
|
node.type === "ArrowFunctionExpression" ? `
|
|
701
|
-
const __bt$
|
|
702
|
-
arguments,
|
|
703
|
-
moduleVersion: ${JSON.stringify(moduleVersion)}
|
|
704
|
-
};
|
|
705
|
-
const __bt$traced = () => {
|
|
837
|
+
const __bt$target = (...__bt$args) => {
|
|
706
838
|
const __bt$wrapped = () => {};
|
|
707
|
-
return __bt$wrapped(...
|
|
839
|
+
return __bt$wrapped(...__bt$args);
|
|
708
840
|
};
|
|
709
841
|
` : `
|
|
710
|
-
const __bt$
|
|
711
|
-
arguments,
|
|
712
|
-
self: this,
|
|
713
|
-
moduleVersion: ${JSON.stringify(moduleVersion)}
|
|
714
|
-
};
|
|
715
|
-
const __bt$traced = () => {
|
|
842
|
+
const __bt$target = function (...__bt$args) {
|
|
716
843
|
const __bt$wrapped = () => {};
|
|
717
|
-
return __bt$wrapped.apply(this,
|
|
844
|
+
return __bt$wrapped.apply(this, __bt$args);
|
|
718
845
|
};
|
|
719
846
|
`
|
|
720
847
|
).body;
|
|
@@ -756,49 +883,25 @@ function wrapSuper(node) {
|
|
|
756
883
|
node.body.body.unshift((0, import_meriyah.parse)("const __bt$super = {}").body[0]);
|
|
757
884
|
}
|
|
758
885
|
}
|
|
759
|
-
function
|
|
760
|
-
const {
|
|
761
|
-
channelName,
|
|
762
|
-
functionQuery: { callbackIndex = -1 }
|
|
763
|
-
} = state;
|
|
886
|
+
function wrapInvocation(state) {
|
|
887
|
+
const { channelName, moduleVersion, operator, functionQuery } = state;
|
|
764
888
|
const channelGetter = formatChannelGetter(channelName);
|
|
889
|
+
const callbackIndex = functionQuery.callbackIndex ?? -1;
|
|
765
890
|
return (0, import_meriyah.parse)(`
|
|
766
891
|
function wrapper () {
|
|
767
892
|
const __bt$hook = ${channelGetter}();
|
|
768
|
-
if (!__bt$hook
|
|
769
|
-
__bt$
|
|
770
|
-
|
|
771
|
-
__bt$
|
|
772
|
-
|
|
773
|
-
|
|
893
|
+
if (!__bt$hook) return __bt$target.apply(this, arguments);
|
|
894
|
+
return __bt$hook.traceInvocation(
|
|
895
|
+
${JSON.stringify(operator)},
|
|
896
|
+
__bt$target,
|
|
897
|
+
this,
|
|
898
|
+
arguments,
|
|
899
|
+
{ moduleVersion: ${JSON.stringify(moduleVersion)} },
|
|
900
|
+
${callbackIndex}
|
|
774
901
|
);
|
|
775
902
|
}
|
|
776
903
|
`);
|
|
777
904
|
}
|
|
778
|
-
function wrapPromise(state) {
|
|
779
|
-
const { channelName } = state;
|
|
780
|
-
const channelGetter = formatChannelGetter(channelName);
|
|
781
|
-
return (0, import_meriyah.parse)(`
|
|
782
|
-
function wrapper () {
|
|
783
|
-
const __bt$hook = ${channelGetter}();
|
|
784
|
-
if (!__bt$hook?.hasSubscribers) return __bt$traced();
|
|
785
|
-
__bt$ctx.self ??= this;
|
|
786
|
-
return __bt$hook.tracePromise(__bt$traced, __bt$ctx);
|
|
787
|
-
}
|
|
788
|
-
`);
|
|
789
|
-
}
|
|
790
|
-
function wrapSync(state) {
|
|
791
|
-
const { channelName } = state;
|
|
792
|
-
const channelGetter = formatChannelGetter(channelName);
|
|
793
|
-
return (0, import_meriyah.parse)(`
|
|
794
|
-
function wrapper () {
|
|
795
|
-
const __bt$hook = ${channelGetter}();
|
|
796
|
-
if (!__bt$hook?.hasSubscribers) return __bt$traced();
|
|
797
|
-
__bt$ctx.self ??= this;
|
|
798
|
-
return __bt$hook.traceSync(__bt$traced, __bt$ctx);
|
|
799
|
-
}
|
|
800
|
-
`);
|
|
801
|
-
}
|
|
802
905
|
|
|
803
906
|
// src/auto-instrumentations/orchestrion-js/transformer.ts
|
|
804
907
|
var Transformer = class {
|
|
@@ -1074,6 +1177,7 @@ var envIntegrationAliases = {
|
|
|
1074
1177
|
cloudflareaichat: "cloudflareAIChat",
|
|
1075
1178
|
"cloudflare-ai-chat": "cloudflareAIChat",
|
|
1076
1179
|
"@cloudflare/ai-chat": "cloudflareAIChat",
|
|
1180
|
+
cloudflarethink: "cloudflareThink",
|
|
1077
1181
|
cursor: "cursor",
|
|
1078
1182
|
"cursor-sdk": "cursorSDK",
|
|
1079
1183
|
cursorsdk: "cursorSDK",
|
|
@@ -1094,6 +1198,7 @@ var envIntegrationAliases = {
|
|
|
1094
1198
|
openrouteragent: "openrouterAgent",
|
|
1095
1199
|
"openrouter-agent": "openrouterAgent",
|
|
1096
1200
|
mistral: "mistral",
|
|
1201
|
+
ollama: "ollama",
|
|
1097
1202
|
googleadk: "googleADK",
|
|
1098
1203
|
"google-adk": "googleADK",
|
|
1099
1204
|
cohere: "cohere",
|
|
@@ -1114,7 +1219,10 @@ var envIntegrationAliases = {
|
|
|
1114
1219
|
"langchain-js": "langchain",
|
|
1115
1220
|
"@langchain": "langchain",
|
|
1116
1221
|
langgraph: "langgraph",
|
|
1117
|
-
langsmith: "langsmith"
|
|
1222
|
+
langsmith: "langsmith",
|
|
1223
|
+
voyage: "voyageai",
|
|
1224
|
+
"voyage-ai": "voyageai",
|
|
1225
|
+
voyageai: "voyageai"
|
|
1118
1226
|
};
|
|
1119
1227
|
function readDisabledInstrumentationEnvConfig(disabledList) {
|
|
1120
1228
|
const integrations = {};
|
|
@@ -1179,11 +1287,21 @@ function defineChannels(pkg, channels, options) {
|
|
|
1179
1287
|
const tracingChannel2 = () => isomorph_default.newTracingChannel(
|
|
1180
1288
|
fullChannelName
|
|
1181
1289
|
);
|
|
1290
|
+
const intercept2 = (interceptor) => {
|
|
1291
|
+
const hook = tracingChannel2();
|
|
1292
|
+
return typeof hook.intercept === "function" ? hook.intercept(interceptor) : () => {
|
|
1293
|
+
};
|
|
1294
|
+
};
|
|
1182
1295
|
return [
|
|
1183
1296
|
key,
|
|
1184
1297
|
{
|
|
1185
1298
|
...asyncSpec,
|
|
1186
1299
|
instrumentationName,
|
|
1300
|
+
intercept: intercept2,
|
|
1301
|
+
invoke: (target, thisArg, args, additional) => {
|
|
1302
|
+
const hook = tracingChannel2();
|
|
1303
|
+
return typeof hook.invoke === "function" ? hook.invoke(target, thisArg, args, additional) : Reflect.apply(target, thisArg, args);
|
|
1304
|
+
},
|
|
1187
1305
|
tracingChannel: tracingChannel2,
|
|
1188
1306
|
tracePromise: (fn, context) => tracingChannel2().tracePromise(
|
|
1189
1307
|
fn,
|
|
@@ -1197,11 +1315,21 @@ function defineChannels(pkg, channels, options) {
|
|
|
1197
1315
|
const tracingChannel = () => isomorph_default.newTracingChannel(
|
|
1198
1316
|
fullChannelName
|
|
1199
1317
|
);
|
|
1318
|
+
const intercept = (interceptor) => {
|
|
1319
|
+
const hook = tracingChannel();
|
|
1320
|
+
return typeof hook.intercept === "function" ? hook.intercept(interceptor) : () => {
|
|
1321
|
+
};
|
|
1322
|
+
};
|
|
1200
1323
|
return [
|
|
1201
1324
|
key,
|
|
1202
1325
|
{
|
|
1203
1326
|
...syncSpec,
|
|
1204
1327
|
instrumentationName,
|
|
1328
|
+
intercept,
|
|
1329
|
+
invoke: (target, thisArg, args, additional) => {
|
|
1330
|
+
const hook = tracingChannel();
|
|
1331
|
+
return typeof hook.invoke === "function" ? hook.invoke(target, thisArg, args, additional) : Reflect.apply(target, thisArg, args);
|
|
1332
|
+
},
|
|
1205
1333
|
tracingChannel,
|
|
1206
1334
|
traceSync: (fn, context) => tracingChannel().traceSync(
|
|
1207
1335
|
fn,
|
|
@@ -1223,6 +1351,7 @@ var INSTRUMENTATION_NAMES = {
|
|
|
1223
1351
|
CLAUDE_AGENT_SDK: "claude-agent-sdk",
|
|
1224
1352
|
CLOUDFLARE_AI_CHAT: "cloudflare-ai-chat",
|
|
1225
1353
|
CLOUDFLARE_AGENTS: "cloudflare-agents",
|
|
1354
|
+
CLOUDFLARE_THINK: "cloudflare-think",
|
|
1226
1355
|
COHERE: "cohere",
|
|
1227
1356
|
CURSOR_SDK: "cursor-sdk",
|
|
1228
1357
|
EVE: "eve",
|
|
@@ -1237,13 +1366,15 @@ var INSTRUMENTATION_NAMES = {
|
|
|
1237
1366
|
LANGSMITH: "langsmith",
|
|
1238
1367
|
MASTRA: "mastra",
|
|
1239
1368
|
MISTRAL: "mistral",
|
|
1369
|
+
OLLAMA: "ollama",
|
|
1240
1370
|
OPENAI: "openai",
|
|
1241
1371
|
OPENAI_AGENTS: "openai-agents",
|
|
1242
1372
|
OPENAI_CODEX: "openai-codex",
|
|
1243
1373
|
OPENROUTER: "openrouter",
|
|
1244
1374
|
OPENROUTER_AGENT: "openrouter-agent",
|
|
1245
1375
|
PI_CODING_AGENT: "pi-coding-agent",
|
|
1246
|
-
STRANDS_AGENT_SDK: "strands-agent-sdk"
|
|
1376
|
+
STRANDS_AGENT_SDK: "strands-agent-sdk",
|
|
1377
|
+
VOYAGEAI: "voyageai"
|
|
1247
1378
|
};
|
|
1248
1379
|
|
|
1249
1380
|
// src/instrumentation/plugins/ai-sdk-channels.ts
|
|
@@ -1753,6 +1884,14 @@ var anthropicChannels = defineChannels(
|
|
|
1753
1884
|
betaMessagesToolRunner: channel({
|
|
1754
1885
|
channelName: "beta.messages.toolRunner",
|
|
1755
1886
|
kind: "sync-stream"
|
|
1887
|
+
}),
|
|
1888
|
+
betaSessionsEventsStream: channel({
|
|
1889
|
+
channelName: "beta.sessions.events.stream",
|
|
1890
|
+
kind: "async"
|
|
1891
|
+
}),
|
|
1892
|
+
betaSessionsThreadsEventsStream: channel({
|
|
1893
|
+
channelName: "beta.sessions.threads.events.stream",
|
|
1894
|
+
kind: "async"
|
|
1756
1895
|
})
|
|
1757
1896
|
},
|
|
1758
1897
|
{ instrumentationName: INSTRUMENTATION_NAMES.ANTHROPIC }
|
|
@@ -1871,7 +2010,40 @@ var anthropicConfigs = [
|
|
|
1871
2010
|
methodName: "toolRunner",
|
|
1872
2011
|
kind: "Sync"
|
|
1873
2012
|
}
|
|
1874
|
-
}
|
|
2013
|
+
},
|
|
2014
|
+
// Managed Agents Sessions event streams are discovered automatically, but
|
|
2015
|
+
// remain passive until the user calls collectAnthropicSession() on the
|
|
2016
|
+
// returned stream.
|
|
2017
|
+
...["mjs", "js"].map(
|
|
2018
|
+
(extension) => ({
|
|
2019
|
+
channelName: anthropicChannels.betaSessionsEventsStream.channelName,
|
|
2020
|
+
module: {
|
|
2021
|
+
name: "@anthropic-ai/sdk",
|
|
2022
|
+
versionRange: ">=0.86.0",
|
|
2023
|
+
filePath: `resources/beta/sessions/events.${extension}`
|
|
2024
|
+
},
|
|
2025
|
+
functionQuery: {
|
|
2026
|
+
className: "Events",
|
|
2027
|
+
methodName: "stream",
|
|
2028
|
+
kind: "Async"
|
|
2029
|
+
}
|
|
2030
|
+
})
|
|
2031
|
+
),
|
|
2032
|
+
...["mjs", "js"].map(
|
|
2033
|
+
(extension) => ({
|
|
2034
|
+
channelName: anthropicChannels.betaSessionsThreadsEventsStream.channelName,
|
|
2035
|
+
module: {
|
|
2036
|
+
name: "@anthropic-ai/sdk",
|
|
2037
|
+
versionRange: ">=0.86.0",
|
|
2038
|
+
filePath: `resources/beta/sessions/threads/events.${extension}`
|
|
2039
|
+
},
|
|
2040
|
+
functionQuery: {
|
|
2041
|
+
className: "Events",
|
|
2042
|
+
methodName: "stream",
|
|
2043
|
+
kind: "Async"
|
|
2044
|
+
}
|
|
2045
|
+
})
|
|
2046
|
+
)
|
|
1875
2047
|
];
|
|
1876
2048
|
|
|
1877
2049
|
// src/instrumentation/plugins/bedrock-runtime-channels.ts
|
|
@@ -2068,6 +2240,36 @@ var cloudflareAgentsConfigs = [
|
|
|
2068
2240
|
}
|
|
2069
2241
|
];
|
|
2070
2242
|
|
|
2243
|
+
// src/instrumentation/plugins/cloudflare-think-channels.ts
|
|
2244
|
+
var cloudflareThinkChannels = defineChannels(
|
|
2245
|
+
"@cloudflare/think",
|
|
2246
|
+
{
|
|
2247
|
+
runInferenceLoop: channel({
|
|
2248
|
+
channelName: "Think.runInferenceLoop",
|
|
2249
|
+
kind: "async"
|
|
2250
|
+
})
|
|
2251
|
+
},
|
|
2252
|
+
{ instrumentationName: INSTRUMENTATION_NAMES.CLOUDFLARE_THINK }
|
|
2253
|
+
);
|
|
2254
|
+
|
|
2255
|
+
// src/auto-instrumentations/configs/cloudflare-think.ts
|
|
2256
|
+
var cloudflareThinkVersionRange = ">=0.13.0 <0.14.0";
|
|
2257
|
+
var cloudflareThinkConfigs = [
|
|
2258
|
+
{
|
|
2259
|
+
channelName: cloudflareThinkChannels.runInferenceLoop.channelName,
|
|
2260
|
+
module: {
|
|
2261
|
+
name: "@cloudflare/think",
|
|
2262
|
+
versionRange: cloudflareThinkVersionRange,
|
|
2263
|
+
filePath: "dist/think.js"
|
|
2264
|
+
},
|
|
2265
|
+
functionQuery: {
|
|
2266
|
+
className: "Think",
|
|
2267
|
+
methodName: "_runInferenceLoop",
|
|
2268
|
+
kind: "Async"
|
|
2269
|
+
}
|
|
2270
|
+
}
|
|
2271
|
+
];
|
|
2272
|
+
|
|
2071
2273
|
// src/instrumentation/plugins/cohere-channels.ts
|
|
2072
2274
|
var cohereChannels = defineChannels(
|
|
2073
2275
|
"cohere-ai",
|
|
@@ -3951,6 +4153,51 @@ var mistralConfigs = [
|
|
|
3951
4153
|
}
|
|
3952
4154
|
];
|
|
3953
4155
|
|
|
4156
|
+
// src/instrumentation/plugins/ollama-channels.ts
|
|
4157
|
+
var ollamaChannels = defineChannels(
|
|
4158
|
+
"ollama",
|
|
4159
|
+
{
|
|
4160
|
+
chat: channel({
|
|
4161
|
+
channelName: "chat",
|
|
4162
|
+
kind: "async"
|
|
4163
|
+
}),
|
|
4164
|
+
generate: channel({
|
|
4165
|
+
channelName: "generate",
|
|
4166
|
+
kind: "async"
|
|
4167
|
+
}),
|
|
4168
|
+
embed: channel({
|
|
4169
|
+
channelName: "embed",
|
|
4170
|
+
kind: "async"
|
|
4171
|
+
})
|
|
4172
|
+
},
|
|
4173
|
+
{ instrumentationName: INSTRUMENTATION_NAMES.OLLAMA }
|
|
4174
|
+
);
|
|
4175
|
+
|
|
4176
|
+
// src/auto-instrumentations/configs/ollama.ts
|
|
4177
|
+
var methods = [
|
|
4178
|
+
["chat", ollamaChannels.chat.channelName],
|
|
4179
|
+
["generate", ollamaChannels.generate.channelName],
|
|
4180
|
+
["embed", ollamaChannels.embed.channelName]
|
|
4181
|
+
];
|
|
4182
|
+
var implementationFiles = ["dist/browser.mjs", "dist/browser.cjs"];
|
|
4183
|
+
var ollamaConfigs = [
|
|
4184
|
+
...implementationFiles.flatMap(
|
|
4185
|
+
(filePath) => methods.map(([methodName, channelName]) => ({
|
|
4186
|
+
channelName,
|
|
4187
|
+
module: {
|
|
4188
|
+
name: "ollama",
|
|
4189
|
+
versionRange: ">=0.6.0 <0.7.0",
|
|
4190
|
+
filePath
|
|
4191
|
+
},
|
|
4192
|
+
functionQuery: {
|
|
4193
|
+
className: "Ollama",
|
|
4194
|
+
methodName,
|
|
4195
|
+
kind: "Async"
|
|
4196
|
+
}
|
|
4197
|
+
}))
|
|
4198
|
+
)
|
|
4199
|
+
];
|
|
4200
|
+
|
|
3954
4201
|
// src/instrumentation/plugins/openai-agents-channels.ts
|
|
3955
4202
|
var openAIAgentsCoreChannels = defineChannels(
|
|
3956
4203
|
"@openai/agents-core",
|
|
@@ -4360,6 +4607,19 @@ var openRouterConfigs = [
|
|
|
4360
4607
|
kind: "Async"
|
|
4361
4608
|
}
|
|
4362
4609
|
},
|
|
4610
|
+
{
|
|
4611
|
+
channelName: openRouterChannels.betaResponsesSend.channelName,
|
|
4612
|
+
module: {
|
|
4613
|
+
name: "@openrouter/sdk",
|
|
4614
|
+
versionRange: ">=1.1.2 <2.0.0",
|
|
4615
|
+
filePath: "esm/sdk/betaresponses.js"
|
|
4616
|
+
},
|
|
4617
|
+
functionQuery: {
|
|
4618
|
+
className: "BetaResponses",
|
|
4619
|
+
methodName: "send",
|
|
4620
|
+
kind: "Async"
|
|
4621
|
+
}
|
|
4622
|
+
},
|
|
4363
4623
|
{
|
|
4364
4624
|
channelName: openRouterChannels.callModel.channelName,
|
|
4365
4625
|
module: {
|
|
@@ -4505,6 +4765,77 @@ var strandsAgentSDKConfigs = [
|
|
|
4505
4765
|
}
|
|
4506
4766
|
];
|
|
4507
4767
|
|
|
4768
|
+
// src/instrumentation/plugins/voyageai-channels.ts
|
|
4769
|
+
var voyageAIChannels = defineChannels(
|
|
4770
|
+
"voyageai",
|
|
4771
|
+
{
|
|
4772
|
+
embed: channel({
|
|
4773
|
+
channelName: "embed",
|
|
4774
|
+
kind: "async"
|
|
4775
|
+
}),
|
|
4776
|
+
multimodalEmbed: channel({
|
|
4777
|
+
channelName: "multimodalEmbed",
|
|
4778
|
+
kind: "async"
|
|
4779
|
+
}),
|
|
4780
|
+
rerank: channel({
|
|
4781
|
+
channelName: "rerank",
|
|
4782
|
+
kind: "async"
|
|
4783
|
+
}),
|
|
4784
|
+
contextualizedEmbed: channel({
|
|
4785
|
+
channelName: "contextualizedEmbed",
|
|
4786
|
+
kind: "async"
|
|
4787
|
+
})
|
|
4788
|
+
},
|
|
4789
|
+
{ instrumentationName: INSTRUMENTATION_NAMES.VOYAGEAI }
|
|
4790
|
+
);
|
|
4791
|
+
|
|
4792
|
+
// src/auto-instrumentations/configs/voyageai.ts
|
|
4793
|
+
var GENERATED_CLIENT_MODULES = [
|
|
4794
|
+
"dist/cjs/Client.js",
|
|
4795
|
+
"dist/esm/Client.mjs"
|
|
4796
|
+
];
|
|
4797
|
+
var generatedClientOperations = [
|
|
4798
|
+
{
|
|
4799
|
+
channelName: voyageAIChannels.embed.channelName,
|
|
4800
|
+
methodName: "embed",
|
|
4801
|
+
versionRange: ">=0.2.0 <1.0.0"
|
|
4802
|
+
},
|
|
4803
|
+
{
|
|
4804
|
+
channelName: voyageAIChannels.multimodalEmbed.channelName,
|
|
4805
|
+
methodName: "multimodalEmbed",
|
|
4806
|
+
versionRange: ">=0.2.0 <1.0.0"
|
|
4807
|
+
},
|
|
4808
|
+
{
|
|
4809
|
+
channelName: voyageAIChannels.rerank.channelName,
|
|
4810
|
+
methodName: "rerank",
|
|
4811
|
+
versionRange: ">=0.2.0 <1.0.0"
|
|
4812
|
+
},
|
|
4813
|
+
{
|
|
4814
|
+
channelName: voyageAIChannels.contextualizedEmbed.channelName,
|
|
4815
|
+
methodName: "contextualizedEmbed",
|
|
4816
|
+
versionRange: ">=0.2.0 <1.0.0"
|
|
4817
|
+
}
|
|
4818
|
+
];
|
|
4819
|
+
var voyageAIConfigs = [
|
|
4820
|
+
...GENERATED_CLIENT_MODULES.flatMap(
|
|
4821
|
+
(filePath) => generatedClientOperations.map(
|
|
4822
|
+
({ channelName, methodName, versionRange: versionRange2 }) => ({
|
|
4823
|
+
channelName,
|
|
4824
|
+
module: {
|
|
4825
|
+
name: "voyageai",
|
|
4826
|
+
versionRange: versionRange2,
|
|
4827
|
+
filePath
|
|
4828
|
+
},
|
|
4829
|
+
functionQuery: {
|
|
4830
|
+
className: "VoyageAIClient",
|
|
4831
|
+
methodName,
|
|
4832
|
+
kind: "Async"
|
|
4833
|
+
}
|
|
4834
|
+
})
|
|
4835
|
+
)
|
|
4836
|
+
)
|
|
4837
|
+
];
|
|
4838
|
+
|
|
4508
4839
|
// src/auto-instrumentations/configs/all.ts
|
|
4509
4840
|
var defaultInstrumentationConfigGroups = [
|
|
4510
4841
|
{ integrations: ["openai"], configs: openaiConfigs },
|
|
@@ -4533,6 +4864,10 @@ var defaultInstrumentationConfigGroups = [
|
|
|
4533
4864
|
integrations: ["cloudflareAgents"],
|
|
4534
4865
|
configs: cloudflareAgentsConfigs
|
|
4535
4866
|
},
|
|
4867
|
+
{
|
|
4868
|
+
integrations: ["cloudflareThink"],
|
|
4869
|
+
configs: cloudflareThinkConfigs
|
|
4870
|
+
},
|
|
4536
4871
|
{ integrations: ["cursor", "cursorSDK"], configs: cursorSDKConfigs },
|
|
4537
4872
|
{
|
|
4538
4873
|
integrations: ["openAIAgents"],
|
|
@@ -4557,6 +4892,7 @@ var defaultInstrumentationConfigGroups = [
|
|
|
4557
4892
|
configs: openRouterAgentConfigs
|
|
4558
4893
|
},
|
|
4559
4894
|
{ integrations: ["mistral"], configs: mistralConfigs },
|
|
4895
|
+
{ integrations: ["ollama"], configs: ollamaConfigs },
|
|
4560
4896
|
{ integrations: ["googleADK"], configs: googleADKConfigs },
|
|
4561
4897
|
{ integrations: ["cohere"], configs: cohereConfigs },
|
|
4562
4898
|
{ integrations: ["groq"], configs: groqConfigs },
|
|
@@ -4579,6 +4915,10 @@ var defaultInstrumentationConfigGroups = [
|
|
|
4579
4915
|
{
|
|
4580
4916
|
integrations: ["flue"],
|
|
4581
4917
|
configs: flueConfigs
|
|
4918
|
+
},
|
|
4919
|
+
{
|
|
4920
|
+
integrations: ["voyageai"],
|
|
4921
|
+
configs: voyageAIConfigs
|
|
4582
4922
|
}
|
|
4583
4923
|
// Note: `@mastra/core` is not listed here because its instrumentation
|
|
4584
4924
|
// doesn't go through the AST `code-transformer` matcher — Mastra's
|
|
@@ -4812,6 +5152,49 @@ function applySpecialCasePatch(input) {
|
|
|
4812
5152
|
return null;
|
|
4813
5153
|
}
|
|
4814
5154
|
|
|
5155
|
+
// src/auto-instrumentations/loader/get-package-version.ts
|
|
5156
|
+
var import_node_fs = require("fs");
|
|
5157
|
+
var import_node_path = require("path");
|
|
5158
|
+
var packageNames = /* @__PURE__ */ new Map();
|
|
5159
|
+
function readPackageJson(baseDir) {
|
|
5160
|
+
try {
|
|
5161
|
+
const packageJsonPath = (0, import_node_path.join)(baseDir, "package.json");
|
|
5162
|
+
const jsonFile = (0, import_node_fs.readFileSync)(packageJsonPath, "utf8");
|
|
5163
|
+
return JSON.parse(jsonFile);
|
|
5164
|
+
} catch {
|
|
5165
|
+
return void 0;
|
|
5166
|
+
}
|
|
5167
|
+
}
|
|
5168
|
+
function resolvePackageBaseDir(baseDir) {
|
|
5169
|
+
try {
|
|
5170
|
+
return (0, import_node_fs.realpathSync)(baseDir);
|
|
5171
|
+
} catch {
|
|
5172
|
+
return baseDir;
|
|
5173
|
+
}
|
|
5174
|
+
}
|
|
5175
|
+
function readPackageJsonWithFallback(baseDir) {
|
|
5176
|
+
const packageJson = readPackageJson(baseDir);
|
|
5177
|
+
if (packageJson) {
|
|
5178
|
+
return packageJson;
|
|
5179
|
+
}
|
|
5180
|
+
const resolvedBaseDir = resolvePackageBaseDir(baseDir);
|
|
5181
|
+
if (resolvedBaseDir === baseDir) {
|
|
5182
|
+
return void 0;
|
|
5183
|
+
}
|
|
5184
|
+
return readPackageJson(resolvedBaseDir);
|
|
5185
|
+
}
|
|
5186
|
+
function getPackageName(baseDir) {
|
|
5187
|
+
if (packageNames.has(baseDir)) {
|
|
5188
|
+
return packageNames.get(baseDir);
|
|
5189
|
+
}
|
|
5190
|
+
const packageJson = readPackageJsonWithFallback(baseDir);
|
|
5191
|
+
if (typeof packageJson?.name === "string") {
|
|
5192
|
+
packageNames.set(baseDir, packageJson.name);
|
|
5193
|
+
return packageJson.name;
|
|
5194
|
+
}
|
|
5195
|
+
return void 0;
|
|
5196
|
+
}
|
|
5197
|
+
|
|
4815
5198
|
// src/auto-instrumentations/bundler/plugin.ts
|
|
4816
5199
|
function getModuleVersion(basedir) {
|
|
4817
5200
|
try {
|
|
@@ -4833,6 +5216,20 @@ var unplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
|
|
|
4833
5216
|
return {
|
|
4834
5217
|
name: "code-transformer",
|
|
4835
5218
|
enforce: "pre",
|
|
5219
|
+
transformInclude(id) {
|
|
5220
|
+
const pathWithoutQuery = id.split("?", 1)[0];
|
|
5221
|
+
if (!pathWithoutQuery) {
|
|
5222
|
+
return false;
|
|
5223
|
+
}
|
|
5224
|
+
if (pathWithoutQuery.startsWith("file:")) {
|
|
5225
|
+
try {
|
|
5226
|
+
return (0, import_path.isAbsolute)((0, import_url.fileURLToPath)(pathWithoutQuery));
|
|
5227
|
+
} catch {
|
|
5228
|
+
return false;
|
|
5229
|
+
}
|
|
5230
|
+
}
|
|
5231
|
+
return (0, import_path.isAbsolute)(pathWithoutQuery);
|
|
5232
|
+
},
|
|
4836
5233
|
transform(code, id) {
|
|
4837
5234
|
if (!id) {
|
|
4838
5235
|
return null;
|
|
@@ -4849,7 +5246,7 @@ var unplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
|
|
|
4849
5246
|
if (!moduleDetails) {
|
|
4850
5247
|
return null;
|
|
4851
5248
|
}
|
|
4852
|
-
const moduleName = moduleDetails.name;
|
|
5249
|
+
const moduleName = getPackageName(moduleDetails.basedir) ?? moduleDetails.name;
|
|
4853
5250
|
const normalizedModulePath = moduleDetails.path.replace(/\\/g, "/");
|
|
4854
5251
|
const moduleVersion = getModuleVersion(moduleDetails.basedir);
|
|
4855
5252
|
const patched = applySpecialCasePatch({
|
|
@@ -4895,7 +5292,7 @@ var unplugin = (0, import_unplugin.createUnplugin)((options = {}) => {
|
|
|
4895
5292
|
var webpackPlugin = unplugin.webpack;
|
|
4896
5293
|
|
|
4897
5294
|
// src/auto-instrumentations/bundler/next.ts
|
|
4898
|
-
var requireFromProject = (0, import_node_module.createRequire)((0,
|
|
5295
|
+
var requireFromProject = (0, import_node_module.createRequire)((0, import_node_path2.join)(process.cwd(), "package.json"));
|
|
4899
5296
|
var TURBOPACK_RULE_MATCHER = "*.{js,mjs,cjs}";
|
|
4900
5297
|
function wrapNextjsConfigWithBraintrust(nextConfig) {
|
|
4901
5298
|
const castNextConfig = nextConfig ?? {};
|