braintrust 3.21.0 → 3.23.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/README.md +47 -0
- package/dev/dist/index.d.mts +1030 -1
- package/dev/dist/index.d.ts +1030 -1
- package/dev/dist/index.js +1429 -663
- package/dev/dist/index.mjs +811 -45
- package/dist/apply-auto-instrumentation.js +222 -186
- package/dist/apply-auto-instrumentation.mjs +37 -1
- package/dist/auto-instrumentations/bundler/esbuild.cjs +53 -1
- package/dist/auto-instrumentations/bundler/esbuild.mjs +2 -2
- package/dist/auto-instrumentations/bundler/next.cjs +53 -1
- package/dist/auto-instrumentations/bundler/next.mjs +3 -3
- package/dist/auto-instrumentations/bundler/rollup.cjs +53 -1
- package/dist/auto-instrumentations/bundler/rollup.mjs +2 -2
- package/dist/auto-instrumentations/bundler/vite.cjs +53 -1
- package/dist/auto-instrumentations/bundler/vite.mjs +2 -2
- package/dist/auto-instrumentations/bundler/webpack-loader.cjs +53 -1
- package/dist/auto-instrumentations/bundler/webpack.cjs +53 -1
- package/dist/auto-instrumentations/bundler/webpack.mjs +3 -3
- package/dist/auto-instrumentations/{chunk-TKRPRPGD.mjs → chunk-EXY7QCJD.mjs} +5 -2
- package/dist/auto-instrumentations/{chunk-T6J4C7LX.mjs → chunk-KIMLYPRW.mjs} +1 -1
- package/dist/auto-instrumentations/{chunk-BRQX23KL.mjs → chunk-YXLNSAMJ.mjs} +51 -0
- package/dist/auto-instrumentations/hook.mjs +224 -31
- package/dist/auto-instrumentations/index.cjs +52 -0
- package/dist/auto-instrumentations/index.d.mts +3 -1
- package/dist/auto-instrumentations/index.d.ts +3 -1
- package/dist/auto-instrumentations/index.mjs +3 -1
- package/dist/browser.d.mts +3273 -93
- package/dist/browser.d.ts +3273 -93
- package/dist/browser.js +2495 -63
- package/dist/browser.mjs +2495 -63
- package/dist/{chunk-KMGUTPB7.mjs → chunk-36IPYKMG.mjs} +20 -1
- package/dist/{chunk-BFGIH2ZJ.js → chunk-CDIKAHDZ.js} +21 -2
- package/dist/{chunk-FY7DAKA5.js → chunk-FZWPFCVE.js} +1590 -832
- package/dist/{chunk-O2P765XK.mjs → chunk-IXL4PMY4.mjs} +802 -44
- package/dist/cli.js +816 -47
- package/dist/edge-light.d.mts +1 -1
- package/dist/edge-light.d.ts +1 -1
- package/dist/edge-light.js +2495 -63
- package/dist/edge-light.mjs +2495 -63
- package/dist/index.d.mts +3273 -93
- package/dist/index.d.ts +3273 -93
- package/dist/index.js +2078 -416
- package/dist/index.mjs +1664 -2
- package/dist/instrumentation/index.d.mts +912 -2
- package/dist/instrumentation/index.d.ts +912 -2
- package/dist/instrumentation/index.js +2202 -42
- package/dist/instrumentation/index.mjs +2200 -42
- package/dist/vitest-evals-reporter.js +16 -16
- package/dist/vitest-evals-reporter.mjs +2 -2
- package/dist/workerd.d.mts +1 -1
- package/dist/workerd.d.ts +1 -1
- package/dist/workerd.js +2495 -63
- package/dist/workerd.mjs +2495 -63
- package/package.json +5 -2
|
@@ -70,7 +70,8 @@ var envIntegrationAliases = {
|
|
|
70
70
|
langchain: "langchain",
|
|
71
71
|
"langchain-js": "langchain",
|
|
72
72
|
"@langchain": "langchain",
|
|
73
|
-
langgraph: "langgraph"
|
|
73
|
+
langgraph: "langgraph",
|
|
74
|
+
langsmith: "langsmith"
|
|
74
75
|
};
|
|
75
76
|
function readDisabledInstrumentationEnvConfig(disabledList) {
|
|
76
77
|
const integrations = {};
|
|
@@ -2127,19 +2128,30 @@ var CallEvent = z6.union([
|
|
|
2127
2128
|
var ChatCompletionContentPartTextWithTitle = z6.object({
|
|
2128
2129
|
text: z6.string().default(""),
|
|
2129
2130
|
type: z6.literal("text"),
|
|
2130
|
-
cache_control: z6.object({
|
|
2131
|
+
cache_control: z6.object({
|
|
2132
|
+
type: z6.literal("ephemeral"),
|
|
2133
|
+
ttl: z6.enum(["5m", "1h"]).optional()
|
|
2134
|
+
}).optional()
|
|
2131
2135
|
});
|
|
2132
2136
|
var ChatCompletionContentPartImageWithTitle = z6.object({
|
|
2133
2137
|
image_url: z6.object({
|
|
2134
2138
|
url: z6.string(),
|
|
2135
2139
|
detail: z6.union([z6.literal("auto"), z6.literal("low"), z6.literal("high")]).optional()
|
|
2136
2140
|
}),
|
|
2137
|
-
type: z6.literal("image_url")
|
|
2141
|
+
type: z6.literal("image_url"),
|
|
2142
|
+
cache_control: z6.object({
|
|
2143
|
+
type: z6.literal("ephemeral"),
|
|
2144
|
+
ttl: z6.enum(["5m", "1h"]).optional()
|
|
2145
|
+
}).optional()
|
|
2138
2146
|
});
|
|
2139
2147
|
var ChatCompletionContentPartFileFile = z6.object({ file_data: z6.string(), filename: z6.string(), file_id: z6.string() }).partial();
|
|
2140
2148
|
var ChatCompletionContentPartFileWithTitle = z6.object({
|
|
2141
2149
|
file: ChatCompletionContentPartFileFile,
|
|
2142
|
-
type: z6.literal("file")
|
|
2150
|
+
type: z6.literal("file"),
|
|
2151
|
+
cache_control: z6.object({
|
|
2152
|
+
type: z6.literal("ephemeral"),
|
|
2153
|
+
ttl: z6.enum(["5m", "1h"]).optional()
|
|
2154
|
+
}).optional()
|
|
2143
2155
|
});
|
|
2144
2156
|
var ChatCompletionContentPart = z6.union([
|
|
2145
2157
|
ChatCompletionContentPartTextWithTitle,
|
|
@@ -2149,7 +2161,10 @@ var ChatCompletionContentPart = z6.union([
|
|
|
2149
2161
|
var ChatCompletionContentPartText = z6.object({
|
|
2150
2162
|
text: z6.string().default(""),
|
|
2151
2163
|
type: z6.literal("text"),
|
|
2152
|
-
cache_control: z6.object({
|
|
2164
|
+
cache_control: z6.object({
|
|
2165
|
+
type: z6.literal("ephemeral"),
|
|
2166
|
+
ttl: z6.enum(["5m", "1h"]).optional()
|
|
2167
|
+
}).optional()
|
|
2153
2168
|
});
|
|
2154
2169
|
var ChatCompletionMessageToolCall = z6.object({
|
|
2155
2170
|
id: z6.string(),
|
|
@@ -4158,7 +4173,7 @@ var DiskCache = class {
|
|
|
4158
4173
|
}
|
|
4159
4174
|
};
|
|
4160
4175
|
|
|
4161
|
-
// src/
|
|
4176
|
+
// src/lru-cache.ts
|
|
4162
4177
|
var LRUCache = class {
|
|
4163
4178
|
cache;
|
|
4164
4179
|
maxSize;
|
|
@@ -4174,13 +4189,23 @@ var LRUCache = class {
|
|
|
4174
4189
|
* @returns The cached value if found, undefined otherwise.
|
|
4175
4190
|
*/
|
|
4176
4191
|
get(key) {
|
|
4177
|
-
const
|
|
4178
|
-
if (
|
|
4192
|
+
const entry = this.cache.get(key);
|
|
4193
|
+
if (entry === void 0) {
|
|
4179
4194
|
return void 0;
|
|
4180
4195
|
}
|
|
4181
4196
|
this.cache.delete(key);
|
|
4182
|
-
this.cache.set(key,
|
|
4183
|
-
return value;
|
|
4197
|
+
this.cache.set(key, entry);
|
|
4198
|
+
return entry.value;
|
|
4199
|
+
}
|
|
4200
|
+
/**
|
|
4201
|
+
* Checks whether a key exists and marks it as most recently used.
|
|
4202
|
+
*/
|
|
4203
|
+
has(key) {
|
|
4204
|
+
if (!this.cache.has(key)) {
|
|
4205
|
+
return false;
|
|
4206
|
+
}
|
|
4207
|
+
this.get(key);
|
|
4208
|
+
return true;
|
|
4184
4209
|
}
|
|
4185
4210
|
/**
|
|
4186
4211
|
* Stores a value in the cache.
|
|
@@ -4197,7 +4222,38 @@ var LRUCache = class {
|
|
|
4197
4222
|
const first = this.cache.keys().next().value;
|
|
4198
4223
|
this.cache.delete(first);
|
|
4199
4224
|
}
|
|
4200
|
-
this.cache.set(key, value);
|
|
4225
|
+
this.cache.set(key, { value });
|
|
4226
|
+
}
|
|
4227
|
+
/**
|
|
4228
|
+
* Removes an item from the cache.
|
|
4229
|
+
*/
|
|
4230
|
+
delete(key) {
|
|
4231
|
+
return this.cache.delete(key);
|
|
4232
|
+
}
|
|
4233
|
+
/**
|
|
4234
|
+
* Iterates over cache entries from least to most recently used.
|
|
4235
|
+
*/
|
|
4236
|
+
*entries() {
|
|
4237
|
+
for (const [key, entry] of this.cache) {
|
|
4238
|
+
yield [key, entry.value];
|
|
4239
|
+
}
|
|
4240
|
+
}
|
|
4241
|
+
/**
|
|
4242
|
+
* Iterates over cache keys from least to most recently used.
|
|
4243
|
+
*/
|
|
4244
|
+
keys() {
|
|
4245
|
+
return this.cache.keys();
|
|
4246
|
+
}
|
|
4247
|
+
/**
|
|
4248
|
+
* Iterates over cache values from least to most recently used.
|
|
4249
|
+
*/
|
|
4250
|
+
*values() {
|
|
4251
|
+
for (const entry of this.cache.values()) {
|
|
4252
|
+
yield entry.value;
|
|
4253
|
+
}
|
|
4254
|
+
}
|
|
4255
|
+
[Symbol.iterator]() {
|
|
4256
|
+
return this.entries();
|
|
4201
4257
|
}
|
|
4202
4258
|
/**
|
|
4203
4259
|
* Removes all items from the cache.
|
|
@@ -4755,6 +4811,9 @@ function applyMaskingToField(maskingFunction, data, fieldName) {
|
|
|
4755
4811
|
return `ERROR: Failed to mask field '${fieldName}' - ${errorType}`;
|
|
4756
4812
|
}
|
|
4757
4813
|
}
|
|
4814
|
+
var INITIAL_SPAN_WRITE_AS_MERGE = /* @__PURE__ */ Symbol(
|
|
4815
|
+
"braintrust.initial-span-write-as-merge"
|
|
4816
|
+
);
|
|
4758
4817
|
var BRAINTRUST_CURRENT_SPAN_STORE = /* @__PURE__ */ Symbol.for(
|
|
4759
4818
|
"braintrust.currentSpanStore"
|
|
4760
4819
|
);
|
|
@@ -5324,25 +5383,46 @@ var HTTPConnection = class _HTTPConnection {
|
|
|
5324
5383
|
})
|
|
5325
5384
|
);
|
|
5326
5385
|
}
|
|
5327
|
-
async post(path, params, config) {
|
|
5386
|
+
async post(path, params, config, retries = 0) {
|
|
5328
5387
|
const { headers, ...rest } = config || {};
|
|
5329
5388
|
const this_fetch = this.fetch;
|
|
5330
5389
|
const this_base_url = this.base_url;
|
|
5331
5390
|
const this_headers = this.headers;
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5391
|
+
const tries = retries + 1;
|
|
5392
|
+
for (let i = 0; i < tries; i++) {
|
|
5393
|
+
try {
|
|
5394
|
+
return await checkResponse(
|
|
5395
|
+
await this_fetch(_urljoin(this_base_url, path), {
|
|
5396
|
+
method: "POST",
|
|
5397
|
+
headers: {
|
|
5398
|
+
Accept: "application/json",
|
|
5399
|
+
"Content-Type": "application/json",
|
|
5400
|
+
...this_headers,
|
|
5401
|
+
...headers
|
|
5402
|
+
},
|
|
5403
|
+
body: typeof params === "string" ? params : params ? JSON.stringify(params) : void 0,
|
|
5404
|
+
keepalive: true,
|
|
5405
|
+
...rest
|
|
5406
|
+
})
|
|
5407
|
+
);
|
|
5408
|
+
} catch (error) {
|
|
5409
|
+
if (config?.signal?.aborted) {
|
|
5410
|
+
throw getAbortReason(config.signal);
|
|
5411
|
+
}
|
|
5412
|
+
if (i === tries - 1 || !isRetryableHTTPError(error)) {
|
|
5413
|
+
throw error;
|
|
5414
|
+
}
|
|
5415
|
+
debugLogger.debug(
|
|
5416
|
+
`Retrying API request ${path} after ${formatHTTPError(error)}`
|
|
5417
|
+
);
|
|
5418
|
+
const sleepTimeMs = HTTP_RETRY_BASE_SLEEP_TIME_S * 1e3 * 2 ** i + Math.random() * HTTP_RETRY_JITTER_MS;
|
|
5419
|
+
debugLogger.info(
|
|
5420
|
+
`Sleeping for ${sleepTimeMs}ms before retrying API request`
|
|
5421
|
+
);
|
|
5422
|
+
await waitForRetry(sleepTimeMs, config?.signal);
|
|
5423
|
+
}
|
|
5424
|
+
}
|
|
5425
|
+
throw new Error("Unexpected retry state");
|
|
5346
5426
|
}
|
|
5347
5427
|
async get_json(object_type, args = void 0, retries = 0) {
|
|
5348
5428
|
const tries = retries + 1;
|
|
@@ -6242,6 +6322,45 @@ function now() {
|
|
|
6242
6322
|
var DEFAULT_FLUSH_BACKPRESSURE_BYTES = 10 * 1024 * 1024;
|
|
6243
6323
|
var BACKGROUND_LOGGER_BASE_SLEEP_TIME_S = 1;
|
|
6244
6324
|
var HTTP_RETRY_BASE_SLEEP_TIME_S = 1;
|
|
6325
|
+
var HTTP_RETRY_JITTER_MS = 200;
|
|
6326
|
+
var BTQL_HTTP_RETRIES = 3;
|
|
6327
|
+
var RETRYABLE_HTTP_STATUS_CODES = /* @__PURE__ */ new Set([500, 502, 503, 504]);
|
|
6328
|
+
function isRetryableHTTPError(error) {
|
|
6329
|
+
return !(error instanceof FailedHTTPResponse) || RETRYABLE_HTTP_STATUS_CODES.has(error.status);
|
|
6330
|
+
}
|
|
6331
|
+
function formatHTTPError(error) {
|
|
6332
|
+
if (error instanceof FailedHTTPResponse) {
|
|
6333
|
+
return `${error.status} ${error.text}`;
|
|
6334
|
+
}
|
|
6335
|
+
return error instanceof Error ? error.message : String(error);
|
|
6336
|
+
}
|
|
6337
|
+
function getAbortReason(signal) {
|
|
6338
|
+
return signal.reason ?? new Error("Request aborted");
|
|
6339
|
+
}
|
|
6340
|
+
async function waitForRetry(delayMs, signal) {
|
|
6341
|
+
if (!signal) {
|
|
6342
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
6343
|
+
return;
|
|
6344
|
+
}
|
|
6345
|
+
if (signal.aborted) {
|
|
6346
|
+
throw getAbortReason(signal);
|
|
6347
|
+
}
|
|
6348
|
+
await new Promise((resolve, reject) => {
|
|
6349
|
+
const onAbort = () => {
|
|
6350
|
+
clearTimeout(timeout);
|
|
6351
|
+
signal.removeEventListener("abort", onAbort);
|
|
6352
|
+
reject(getAbortReason(signal));
|
|
6353
|
+
};
|
|
6354
|
+
const timeout = setTimeout(() => {
|
|
6355
|
+
signal.removeEventListener("abort", onAbort);
|
|
6356
|
+
resolve();
|
|
6357
|
+
}, delayMs);
|
|
6358
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
6359
|
+
if (signal.aborted) {
|
|
6360
|
+
onAbort();
|
|
6361
|
+
}
|
|
6362
|
+
});
|
|
6363
|
+
}
|
|
6245
6364
|
var HTTPBackgroundLogger = class _HTTPBackgroundLogger {
|
|
6246
6365
|
apiConn;
|
|
6247
6366
|
queue;
|
|
@@ -7483,7 +7602,8 @@ var ObjectFetcher = class {
|
|
|
7483
7602
|
version: this.pinnedVersion
|
|
7484
7603
|
} : {}
|
|
7485
7604
|
},
|
|
7486
|
-
{ headers: { "Accept-Encoding": "gzip" } }
|
|
7605
|
+
{ headers: { "Accept-Encoding": "gzip" } },
|
|
7606
|
+
BTQL_HTTP_RETRIES
|
|
7487
7607
|
);
|
|
7488
7608
|
const respJson = await resp.json();
|
|
7489
7609
|
const mutate = this.mutateRecord;
|
|
@@ -7959,7 +8079,7 @@ var SpanImpl = class _SpanImpl {
|
|
|
7959
8079
|
this._spanId = resolvedIds.spanId;
|
|
7960
8080
|
this._rootSpanId = resolvedIds.rootSpanId;
|
|
7961
8081
|
this._spanParents = resolvedIds.spanParents;
|
|
7962
|
-
this.isMerge =
|
|
8082
|
+
this.isMerge = args[INITIAL_SPAN_WRITE_AS_MERGE] === true;
|
|
7963
8083
|
this.logInternal({ event, internalData });
|
|
7964
8084
|
this.isMerge = true;
|
|
7965
8085
|
}
|
|
@@ -8717,6 +8837,15 @@ function modelMetrics(attributes) {
|
|
|
8717
8837
|
}
|
|
8718
8838
|
return Object.keys(out).length > 0 ? out : void 0;
|
|
8719
8839
|
}
|
|
8840
|
+
function timeToFirstTokenSeconds(attributes, spanStartSeconds) {
|
|
8841
|
+
if (!isObject(attributes)) return void 0;
|
|
8842
|
+
if (spanStartSeconds === void 0) return void 0;
|
|
8843
|
+
const raw = attributes.completionStartTime;
|
|
8844
|
+
const completionStart = raw instanceof Date || typeof raw === "string" || typeof raw === "number" ? epochSeconds(raw) : void 0;
|
|
8845
|
+
if (completionStart === void 0) return void 0;
|
|
8846
|
+
const ttft = completionStart - spanStartSeconds;
|
|
8847
|
+
return Number.isFinite(ttft) && ttft >= 0 ? ttft : void 0;
|
|
8848
|
+
}
|
|
8720
8849
|
function buildMetadata(exported) {
|
|
8721
8850
|
const out = {};
|
|
8722
8851
|
if (exported.entityId !== void 0) out.entity_id = exported.entityId;
|
|
@@ -8786,7 +8915,13 @@ var BraintrustObservabilityExporter = class {
|
|
|
8786
8915
|
const args = {
|
|
8787
8916
|
name: exported.name,
|
|
8788
8917
|
spanAttributes: { type: spanTypeFor(exported.type) },
|
|
8789
|
-
startTime: epochSeconds(exported.startTime)
|
|
8918
|
+
startTime: epochSeconds(exported.startTime),
|
|
8919
|
+
// Use the Mastra span id as the Braintrust row id so that
|
|
8920
|
+
// `logFeedback({ id: <mastra span id> })` (and Mastra's score events)
|
|
8921
|
+
// attach to the right row. Without this, `SpanImpl` auto-generates a
|
|
8922
|
+
// row id (`this._id = eventId ?? idGenerator.getSpanId()`) that no
|
|
8923
|
+
// external caller could know.
|
|
8924
|
+
event: { id: exported.id }
|
|
8790
8925
|
};
|
|
8791
8926
|
const parentRecord = exported.parentSpanId ? this.spans.get(exported.parentSpanId) : void 0;
|
|
8792
8927
|
if (!this.capturedParent) {
|
|
@@ -8835,8 +8970,15 @@ var BraintrustObservabilityExporter = class {
|
|
|
8835
8970
|
event.metadata = metadata;
|
|
8836
8971
|
}
|
|
8837
8972
|
const metrics = modelMetrics(exported.attributes);
|
|
8838
|
-
|
|
8839
|
-
|
|
8973
|
+
const ttft = timeToFirstTokenSeconds(
|
|
8974
|
+
exported.attributes,
|
|
8975
|
+
epochSeconds(exported.startTime)
|
|
8976
|
+
);
|
|
8977
|
+
if (metrics || ttft !== void 0) {
|
|
8978
|
+
event.metrics = {
|
|
8979
|
+
...metrics ?? {},
|
|
8980
|
+
...ttft !== void 0 ? { time_to_first_token: ttft } : {}
|
|
8981
|
+
};
|
|
8840
8982
|
}
|
|
8841
8983
|
if (Object.keys(event).length > 0) {
|
|
8842
8984
|
record.span.log(event);
|
|
@@ -10948,6 +11090,56 @@ var langchainConfigs = [
|
|
|
10948
11090
|
}
|
|
10949
11091
|
];
|
|
10950
11092
|
|
|
11093
|
+
// src/instrumentation/plugins/langsmith-channels.ts
|
|
11094
|
+
var langSmithChannels = defineChannels("langsmith", {
|
|
11095
|
+
createRun: channel({
|
|
11096
|
+
channelName: "Client.createRun",
|
|
11097
|
+
kind: "async"
|
|
11098
|
+
}),
|
|
11099
|
+
updateRun: channel({
|
|
11100
|
+
channelName: "Client.updateRun",
|
|
11101
|
+
kind: "async"
|
|
11102
|
+
}),
|
|
11103
|
+
batchIngestRuns: channel({
|
|
11104
|
+
channelName: "Client.batchIngestRuns",
|
|
11105
|
+
kind: "async"
|
|
11106
|
+
})
|
|
11107
|
+
});
|
|
11108
|
+
|
|
11109
|
+
// src/auto-instrumentations/configs/langsmith.ts
|
|
11110
|
+
var versionRange = ">=0.3.30 <1.0.0";
|
|
11111
|
+
var langSmithConfigs = [
|
|
11112
|
+
...["dist/client.js", "dist/client.cjs"].flatMap((filePath) => [
|
|
11113
|
+
{
|
|
11114
|
+
channelName: langSmithChannels.createRun.channelName,
|
|
11115
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
11116
|
+
functionQuery: {
|
|
11117
|
+
className: "Client",
|
|
11118
|
+
methodName: "createRun",
|
|
11119
|
+
kind: "Async"
|
|
11120
|
+
}
|
|
11121
|
+
},
|
|
11122
|
+
{
|
|
11123
|
+
channelName: langSmithChannels.updateRun.channelName,
|
|
11124
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
11125
|
+
functionQuery: {
|
|
11126
|
+
className: "Client",
|
|
11127
|
+
methodName: "updateRun",
|
|
11128
|
+
kind: "Async"
|
|
11129
|
+
}
|
|
11130
|
+
},
|
|
11131
|
+
{
|
|
11132
|
+
channelName: langSmithChannels.batchIngestRuns.channelName,
|
|
11133
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
11134
|
+
functionQuery: {
|
|
11135
|
+
className: "Client",
|
|
11136
|
+
methodName: "batchIngestRuns",
|
|
11137
|
+
kind: "Async"
|
|
11138
|
+
}
|
|
11139
|
+
}
|
|
11140
|
+
])
|
|
11141
|
+
];
|
|
11142
|
+
|
|
10951
11143
|
// src/instrumentation/plugins/mistral-channels.ts
|
|
10952
11144
|
var mistralChannels = defineChannels("@mistralai/mistralai", {
|
|
10953
11145
|
chatComplete: channel({
|
|
@@ -11851,6 +12043,7 @@ var defaultInstrumentationConfigGroups = [
|
|
|
11851
12043
|
integrations: ["langchain", "langgraph"],
|
|
11852
12044
|
configs: langchainConfigs
|
|
11853
12045
|
},
|
|
12046
|
+
{ integrations: ["langsmith"], configs: langSmithConfigs },
|
|
11854
12047
|
{ integrations: ["openrouter"], configs: openRouterConfigs },
|
|
11855
12048
|
{
|
|
11856
12049
|
integrations: ["openrouterAgent"],
|
|
@@ -32,6 +32,7 @@ __export(index_exports, {
|
|
|
32
32
|
googleGenAIConfigs: () => googleGenAIConfigs,
|
|
33
33
|
groqConfigs: () => groqConfigs,
|
|
34
34
|
huggingFaceConfigs: () => huggingFaceConfigs,
|
|
35
|
+
langSmithConfigs: () => langSmithConfigs,
|
|
35
36
|
langchainConfigs: () => langchainConfigs,
|
|
36
37
|
mistralConfigs: () => mistralConfigs,
|
|
37
38
|
openAIAgentsCoreConfigs: () => openAIAgentsCoreConfigs,
|
|
@@ -2997,6 +2998,56 @@ var langchainConfigs = [
|
|
|
2997
2998
|
}
|
|
2998
2999
|
];
|
|
2999
3000
|
|
|
3001
|
+
// src/instrumentation/plugins/langsmith-channels.ts
|
|
3002
|
+
var langSmithChannels = defineChannels("langsmith", {
|
|
3003
|
+
createRun: channel({
|
|
3004
|
+
channelName: "Client.createRun",
|
|
3005
|
+
kind: "async"
|
|
3006
|
+
}),
|
|
3007
|
+
updateRun: channel({
|
|
3008
|
+
channelName: "Client.updateRun",
|
|
3009
|
+
kind: "async"
|
|
3010
|
+
}),
|
|
3011
|
+
batchIngestRuns: channel({
|
|
3012
|
+
channelName: "Client.batchIngestRuns",
|
|
3013
|
+
kind: "async"
|
|
3014
|
+
})
|
|
3015
|
+
});
|
|
3016
|
+
|
|
3017
|
+
// src/auto-instrumentations/configs/langsmith.ts
|
|
3018
|
+
var versionRange = ">=0.3.30 <1.0.0";
|
|
3019
|
+
var langSmithConfigs = [
|
|
3020
|
+
...["dist/client.js", "dist/client.cjs"].flatMap((filePath) => [
|
|
3021
|
+
{
|
|
3022
|
+
channelName: langSmithChannels.createRun.channelName,
|
|
3023
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
3024
|
+
functionQuery: {
|
|
3025
|
+
className: "Client",
|
|
3026
|
+
methodName: "createRun",
|
|
3027
|
+
kind: "Async"
|
|
3028
|
+
}
|
|
3029
|
+
},
|
|
3030
|
+
{
|
|
3031
|
+
channelName: langSmithChannels.updateRun.channelName,
|
|
3032
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
3033
|
+
functionQuery: {
|
|
3034
|
+
className: "Client",
|
|
3035
|
+
methodName: "updateRun",
|
|
3036
|
+
kind: "Async"
|
|
3037
|
+
}
|
|
3038
|
+
},
|
|
3039
|
+
{
|
|
3040
|
+
channelName: langSmithChannels.batchIngestRuns.channelName,
|
|
3041
|
+
module: { name: "langsmith", versionRange, filePath },
|
|
3042
|
+
functionQuery: {
|
|
3043
|
+
className: "Client",
|
|
3044
|
+
methodName: "batchIngestRuns",
|
|
3045
|
+
kind: "Async"
|
|
3046
|
+
}
|
|
3047
|
+
}
|
|
3048
|
+
])
|
|
3049
|
+
];
|
|
3050
|
+
|
|
3000
3051
|
// src/instrumentation/plugins/pi-coding-agent-channels.ts
|
|
3001
3052
|
var piCodingAgentChannels = defineChannels(
|
|
3002
3053
|
"@earendil-works/pi-coding-agent",
|
|
@@ -3039,6 +3090,7 @@ var piCodingAgentConfigs = [
|
|
|
3039
3090
|
googleGenAIConfigs,
|
|
3040
3091
|
groqConfigs,
|
|
3041
3092
|
huggingFaceConfigs,
|
|
3093
|
+
langSmithConfigs,
|
|
3042
3094
|
langchainConfigs,
|
|
3043
3095
|
mistralConfigs,
|
|
3044
3096
|
openAIAgentsCoreConfigs,
|
|
@@ -111,6 +111,8 @@ declare const gitHubCopilotConfigs: InstrumentationConfig[];
|
|
|
111
111
|
|
|
112
112
|
declare const langchainConfigs: InstrumentationConfig[];
|
|
113
113
|
|
|
114
|
+
declare const langSmithConfigs: InstrumentationConfig[];
|
|
115
|
+
|
|
114
116
|
declare const piCodingAgentConfigs: InstrumentationConfig[];
|
|
115
117
|
|
|
116
|
-
export { InstrumentationConfig, aiSDKConfigs, anthropicConfigs, bedrockRuntimeConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
|
|
118
|
+
export { InstrumentationConfig, aiSDKConfigs, anthropicConfigs, bedrockRuntimeConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langSmithConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
|
|
@@ -111,6 +111,8 @@ declare const gitHubCopilotConfigs: InstrumentationConfig[];
|
|
|
111
111
|
|
|
112
112
|
declare const langchainConfigs: InstrumentationConfig[];
|
|
113
113
|
|
|
114
|
+
declare const langSmithConfigs: InstrumentationConfig[];
|
|
115
|
+
|
|
114
116
|
declare const piCodingAgentConfigs: InstrumentationConfig[];
|
|
115
117
|
|
|
116
|
-
export { InstrumentationConfig, aiSDKConfigs, anthropicConfigs, bedrockRuntimeConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
|
|
118
|
+
export { InstrumentationConfig, aiSDKConfigs, anthropicConfigs, bedrockRuntimeConfigs, claudeAgentSDKConfigs, cohereConfigs, cursorSDKConfigs, genkitConfigs, gitHubCopilotConfigs, googleADKConfigs, googleGenAIConfigs, groqConfigs, huggingFaceConfigs, langSmithConfigs, langchainConfigs, mistralConfigs, openAIAgentsCoreConfigs, openAICodexConfigs, openRouterAgentConfigs, openRouterConfigs, openaiConfigs, piCodingAgentConfigs };
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
googleGenAIConfigs,
|
|
12
12
|
groqConfigs,
|
|
13
13
|
huggingFaceConfigs,
|
|
14
|
+
langSmithConfigs,
|
|
14
15
|
langchainConfigs,
|
|
15
16
|
mistralConfigs,
|
|
16
17
|
openAIAgentsCoreConfigs,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
openRouterConfigs,
|
|
20
21
|
openaiConfigs,
|
|
21
22
|
piCodingAgentConfigs
|
|
22
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YXLNSAMJ.mjs";
|
|
23
24
|
export {
|
|
24
25
|
aiSDKConfigs,
|
|
25
26
|
anthropicConfigs,
|
|
@@ -33,6 +34,7 @@ export {
|
|
|
33
34
|
googleGenAIConfigs,
|
|
34
35
|
groqConfigs,
|
|
35
36
|
huggingFaceConfigs,
|
|
37
|
+
langSmithConfigs,
|
|
36
38
|
langchainConfigs,
|
|
37
39
|
mistralConfigs,
|
|
38
40
|
openAIAgentsCoreConfigs,
|