langsmith 0.1.31-rc.0 → 0.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/run_trees.cjs +17 -5
- package/dist/run_trees.d.ts +7 -2
- package/dist/run_trees.js +17 -5
- package/dist/singletons/traceable.cjs +10 -2
- package/dist/singletons/traceable.d.ts +1 -0
- package/dist/singletons/traceable.js +8 -1
- package/dist/traceable.cjs +3 -2
- package/dist/traceable.d.ts +1 -1
- package/dist/traceable.js +2 -2
- package/package.json +1 -1
package/dist/run_trees.cjs
CHANGED
|
@@ -412,7 +412,13 @@ class RunTree {
|
|
|
412
412
|
return this.fromHeaders({ "langsmith-trace": dottedOrder });
|
|
413
413
|
}
|
|
414
414
|
static fromHeaders(headers, inheritArgs) {
|
|
415
|
-
const
|
|
415
|
+
const rawHeaders = "get" in headers && typeof headers.get === "function"
|
|
416
|
+
? {
|
|
417
|
+
"langsmith-trace": headers.get("langsmith-trace"),
|
|
418
|
+
baggage: headers.get("baggage"),
|
|
419
|
+
}
|
|
420
|
+
: headers;
|
|
421
|
+
const headerTrace = rawHeaders["langsmith-trace"];
|
|
416
422
|
if (!headerTrace || typeof headerTrace !== "string")
|
|
417
423
|
return undefined;
|
|
418
424
|
const parentDottedOrder = headerTrace.trim();
|
|
@@ -430,18 +436,24 @@ class RunTree {
|
|
|
430
436
|
trace_id: traceId,
|
|
431
437
|
dotted_order: parentDottedOrder,
|
|
432
438
|
};
|
|
433
|
-
if (
|
|
434
|
-
const baggage = Baggage.fromHeader(
|
|
439
|
+
if (rawHeaders["baggage"] && typeof rawHeaders["baggage"] === "string") {
|
|
440
|
+
const baggage = Baggage.fromHeader(rawHeaders["baggage"]);
|
|
435
441
|
config.metadata = baggage.metadata;
|
|
436
442
|
config.tags = baggage.tags;
|
|
437
443
|
}
|
|
438
444
|
return new RunTree(config);
|
|
439
445
|
}
|
|
440
|
-
toHeaders() {
|
|
441
|
-
|
|
446
|
+
toHeaders(headers) {
|
|
447
|
+
const result = {
|
|
442
448
|
"langsmith-trace": this.dotted_order,
|
|
443
449
|
baggage: new Baggage(this.extra?.metadata, this.tags).toHeader(),
|
|
444
450
|
};
|
|
451
|
+
if (headers) {
|
|
452
|
+
for (const [key, value] of Object.entries(result)) {
|
|
453
|
+
headers.set(key, value);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return result;
|
|
445
457
|
}
|
|
446
458
|
}
|
|
447
459
|
exports.RunTree = RunTree;
|
package/dist/run_trees.d.ts
CHANGED
|
@@ -44,6 +44,10 @@ export interface RunnableConfigLike {
|
|
|
44
44
|
*/
|
|
45
45
|
callbacks?: any;
|
|
46
46
|
}
|
|
47
|
+
interface HeadersLike {
|
|
48
|
+
get(name: string): string | null;
|
|
49
|
+
set(name: string, value: string): void;
|
|
50
|
+
}
|
|
47
51
|
export declare class RunTree implements BaseRun {
|
|
48
52
|
id: string;
|
|
49
53
|
name: RunTreeConfig["name"];
|
|
@@ -77,11 +81,12 @@ export declare class RunTree implements BaseRun {
|
|
|
77
81
|
toJSON(): RunCreate;
|
|
78
82
|
static fromRunnableConfig(parentConfig: RunnableConfigLike, props: RunTreeConfig): RunTree;
|
|
79
83
|
static fromDottedOrder(dottedOrder: string): RunTree | undefined;
|
|
80
|
-
static fromHeaders(headers: Record<string, string
|
|
81
|
-
toHeaders(): {
|
|
84
|
+
static fromHeaders(headers: Record<string, string | string[]> | HeadersLike, inheritArgs?: RunTreeConfig): RunTree | undefined;
|
|
85
|
+
toHeaders(headers?: HeadersLike): {
|
|
82
86
|
"langsmith-trace": string;
|
|
83
87
|
baggage: string;
|
|
84
88
|
};
|
|
85
89
|
}
|
|
86
90
|
export declare function isRunTree(x?: unknown): x is RunTree;
|
|
87
91
|
export declare function isRunnableConfigLike(x?: unknown): x is RunnableConfigLike;
|
|
92
|
+
export {};
|
package/dist/run_trees.js
CHANGED
|
@@ -385,7 +385,13 @@ export class RunTree {
|
|
|
385
385
|
return this.fromHeaders({ "langsmith-trace": dottedOrder });
|
|
386
386
|
}
|
|
387
387
|
static fromHeaders(headers, inheritArgs) {
|
|
388
|
-
const
|
|
388
|
+
const rawHeaders = "get" in headers && typeof headers.get === "function"
|
|
389
|
+
? {
|
|
390
|
+
"langsmith-trace": headers.get("langsmith-trace"),
|
|
391
|
+
baggage: headers.get("baggage"),
|
|
392
|
+
}
|
|
393
|
+
: headers;
|
|
394
|
+
const headerTrace = rawHeaders["langsmith-trace"];
|
|
389
395
|
if (!headerTrace || typeof headerTrace !== "string")
|
|
390
396
|
return undefined;
|
|
391
397
|
const parentDottedOrder = headerTrace.trim();
|
|
@@ -403,18 +409,24 @@ export class RunTree {
|
|
|
403
409
|
trace_id: traceId,
|
|
404
410
|
dotted_order: parentDottedOrder,
|
|
405
411
|
};
|
|
406
|
-
if (
|
|
407
|
-
const baggage = Baggage.fromHeader(
|
|
412
|
+
if (rawHeaders["baggage"] && typeof rawHeaders["baggage"] === "string") {
|
|
413
|
+
const baggage = Baggage.fromHeader(rawHeaders["baggage"]);
|
|
408
414
|
config.metadata = baggage.metadata;
|
|
409
415
|
config.tags = baggage.tags;
|
|
410
416
|
}
|
|
411
417
|
return new RunTree(config);
|
|
412
418
|
}
|
|
413
|
-
toHeaders() {
|
|
414
|
-
|
|
419
|
+
toHeaders(headers) {
|
|
420
|
+
const result = {
|
|
415
421
|
"langsmith-trace": this.dotted_order,
|
|
416
422
|
baggage: new Baggage(this.extra?.metadata, this.tags).toHeader(),
|
|
417
423
|
};
|
|
424
|
+
if (headers) {
|
|
425
|
+
for (const [key, value] of Object.entries(result)) {
|
|
426
|
+
headers.set(key, value);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
return result;
|
|
418
430
|
}
|
|
419
431
|
}
|
|
420
432
|
export function isRunTree(x) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isTraceableFunction = exports.ROOT = exports.getCurrentRunTree = exports.AsyncLocalStorageProviderSingleton = void 0;
|
|
3
|
+
exports.isTraceableFunction = exports.ROOT = exports.withRunTree = exports.getCurrentRunTree = exports.AsyncLocalStorageProviderSingleton = void 0;
|
|
4
4
|
class MockAsyncLocalStorage {
|
|
5
5
|
getStore() {
|
|
6
6
|
return undefined;
|
|
@@ -47,12 +47,20 @@ const getCurrentRunTree = () => {
|
|
|
47
47
|
throw new Error([
|
|
48
48
|
"Could not get the current run tree.",
|
|
49
49
|
"",
|
|
50
|
-
"Please make sure you are calling this method within a traceable function.",
|
|
50
|
+
"Please make sure you are calling this method within a traceable function or the tracing is enabled.",
|
|
51
51
|
].join("\n"));
|
|
52
52
|
}
|
|
53
53
|
return runTree;
|
|
54
54
|
};
|
|
55
55
|
exports.getCurrentRunTree = getCurrentRunTree;
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
function withRunTree(runTree, fn) {
|
|
58
|
+
const storage = exports.AsyncLocalStorageProviderSingleton.getInstance();
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
storage.run(runTree, () => void Promise.resolve(fn()).then(resolve).catch(reject));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
exports.withRunTree = withRunTree;
|
|
56
64
|
exports.ROOT = Symbol.for("langsmith:traceable:root");
|
|
57
65
|
function isTraceableFunction(x
|
|
58
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -18,6 +18,7 @@ export declare const AsyncLocalStorageProviderSingleton: AsyncLocalStorageProvid
|
|
|
18
18
|
* @returns The run tree for the given context.
|
|
19
19
|
*/
|
|
20
20
|
export declare const getCurrentRunTree: () => RunTree;
|
|
21
|
+
export declare function withRunTree<Fn extends (...args: any[]) => any>(runTree: RunTree, fn: Fn): Promise<Awaited<ReturnType<Fn>>>;
|
|
21
22
|
export declare const ROOT: unique symbol;
|
|
22
23
|
export declare function isTraceableFunction(x: unknown): x is TraceableFunction<any>;
|
|
23
24
|
export type { TraceableFunction } from "./types.js";
|
|
@@ -44,11 +44,18 @@ export const getCurrentRunTree = () => {
|
|
|
44
44
|
throw new Error([
|
|
45
45
|
"Could not get the current run tree.",
|
|
46
46
|
"",
|
|
47
|
-
"Please make sure you are calling this method within a traceable function.",
|
|
47
|
+
"Please make sure you are calling this method within a traceable function or the tracing is enabled.",
|
|
48
48
|
].join("\n"));
|
|
49
49
|
}
|
|
50
50
|
return runTree;
|
|
51
51
|
};
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
export function withRunTree(runTree, fn) {
|
|
54
|
+
const storage = AsyncLocalStorageProviderSingleton.getInstance();
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
storage.run(runTree, () => void Promise.resolve(fn()).then(resolve).catch(reject));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
52
59
|
export const ROOT = Symbol.for("langsmith:traceable:root");
|
|
53
60
|
export function isTraceableFunction(x
|
|
54
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
package/dist/traceable.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ROOT = exports.isTraceableFunction = exports.getCurrentRunTree = exports.traceable = void 0;
|
|
3
|
+
exports.ROOT = exports.withRunTree = exports.isTraceableFunction = exports.getCurrentRunTree = exports.traceable = void 0;
|
|
4
4
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
5
5
|
const run_trees_js_1 = require("./run_trees.cjs");
|
|
6
6
|
const env_js_1 = require("./env.cjs");
|
|
@@ -35,8 +35,8 @@ const getTracingRunTree = (runTree, inputs, getInvocationParams) => {
|
|
|
35
35
|
if (invocationParams != null) {
|
|
36
36
|
runTree.extra ??= {};
|
|
37
37
|
runTree.extra.metadata = {
|
|
38
|
-
...runTree.extra.metadata,
|
|
39
38
|
...invocationParams,
|
|
39
|
+
...runTree.extra.metadata,
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
return runTree;
|
|
@@ -418,4 +418,5 @@ exports.traceable = traceable;
|
|
|
418
418
|
var traceable_js_2 = require("./singletons/traceable.cjs");
|
|
419
419
|
Object.defineProperty(exports, "getCurrentRunTree", { enumerable: true, get: function () { return traceable_js_2.getCurrentRunTree; } });
|
|
420
420
|
Object.defineProperty(exports, "isTraceableFunction", { enumerable: true, get: function () { return traceable_js_2.isTraceableFunction; } });
|
|
421
|
+
Object.defineProperty(exports, "withRunTree", { enumerable: true, get: function () { return traceable_js_2.withRunTree; } });
|
|
421
422
|
Object.defineProperty(exports, "ROOT", { enumerable: true, get: function () { return traceable_js_2.ROOT; } });
|
package/dist/traceable.d.ts
CHANGED
|
@@ -28,5 +28,5 @@ export declare function traceable<Func extends (...args: any[]) => any>(wrappedF
|
|
|
28
28
|
*/
|
|
29
29
|
getInvocationParams?: (...args: Parameters<Func>) => InvocationParamsSchema | undefined;
|
|
30
30
|
}): TraceableFunction<Func>;
|
|
31
|
-
export { getCurrentRunTree, isTraceableFunction, ROOT, } from "./singletons/traceable.js";
|
|
31
|
+
export { getCurrentRunTree, isTraceableFunction, withRunTree, ROOT, } from "./singletons/traceable.js";
|
|
32
32
|
export type { RunTreeLike, TraceableFunction } from "./singletons/types.js";
|
package/dist/traceable.js
CHANGED
|
@@ -32,8 +32,8 @@ const getTracingRunTree = (runTree, inputs, getInvocationParams) => {
|
|
|
32
32
|
if (invocationParams != null) {
|
|
33
33
|
runTree.extra ??= {};
|
|
34
34
|
runTree.extra.metadata = {
|
|
35
|
-
...runTree.extra.metadata,
|
|
36
35
|
...invocationParams,
|
|
36
|
+
...runTree.extra.metadata,
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
return runTree;
|
|
@@ -411,4 +411,4 @@ export function traceable(wrappedFunc, config) {
|
|
|
411
411
|
});
|
|
412
412
|
return traceableFunc;
|
|
413
413
|
}
|
|
414
|
-
export { getCurrentRunTree, isTraceableFunction, ROOT, } from "./singletons/traceable.js";
|
|
414
|
+
export { getCurrentRunTree, isTraceableFunction, withRunTree, ROOT, } from "./singletons/traceable.js";
|