@langchain/langgraph-api 0.0.50 → 0.0.52
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/CHANGELOG.md +13 -0
- package/dist/logging.d.mts +4 -1
- package/dist/logging.mjs +16 -1
- package/dist/server.mjs +16 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @langchain/langgraph-api
|
|
2
2
|
|
|
3
|
+
## 0.0.52
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 030698f: feat(api): add support for injecting `langgraph_node` in structured logs, expose structlog
|
|
8
|
+
- @langchain/langgraph-ui@0.0.52
|
|
9
|
+
|
|
10
|
+
## 0.0.51
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- @langchain/langgraph-ui@0.0.51
|
|
15
|
+
|
|
3
16
|
## 0.0.50
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/logging.d.mts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { type Logger } from "winston";
|
|
1
2
|
import type { MiddlewareHandler } from "hono";
|
|
2
|
-
export declare const logger:
|
|
3
|
+
export declare const logger: Logger;
|
|
4
|
+
export declare function registerSdkLogger(): void;
|
|
5
|
+
export declare function registerRuntimeLogFormatter(formatter: (info: Record<string, unknown>) => Record<string, unknown>): Promise<void>;
|
|
3
6
|
export declare const logError: (error: unknown, options?: {
|
|
4
7
|
context?: Record<string, unknown>;
|
|
5
8
|
prefix?: string;
|
package/dist/logging.mjs
CHANGED
|
@@ -7,9 +7,15 @@ import { codeFrameColumns } from "@babel/code-frame";
|
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
const LOG_JSON = process.env.LOG_JSON === "true";
|
|
9
9
|
const LOG_LEVEL = process.env.LOG_LEVEL || "debug";
|
|
10
|
+
let RUNTIME_LOG_FORMATTER;
|
|
11
|
+
const applyRuntimeFormatter = format((info) => {
|
|
12
|
+
if (!RUNTIME_LOG_FORMATTER)
|
|
13
|
+
return info;
|
|
14
|
+
return RUNTIME_LOG_FORMATTER(info);
|
|
15
|
+
});
|
|
10
16
|
export const logger = createLogger({
|
|
11
17
|
level: LOG_LEVEL,
|
|
12
|
-
format: format.combine(format.errors({ stack: true }), format.timestamp(), format.json(), ...(!LOG_JSON
|
|
18
|
+
format: format.combine(applyRuntimeFormatter(), format.errors({ stack: true }), format.timestamp(), format.json(), ...(!LOG_JSON
|
|
13
19
|
? [
|
|
14
20
|
format.colorize({ all: true }),
|
|
15
21
|
format.padLevels(),
|
|
@@ -44,6 +50,15 @@ export const logger = createLogger({
|
|
|
44
50
|
])),
|
|
45
51
|
transports: [new transports.Console()],
|
|
46
52
|
});
|
|
53
|
+
// Expose the logger to be consumed by `getLogger`
|
|
54
|
+
export function registerSdkLogger() {
|
|
55
|
+
const GLOBAL_LOGGER = Symbol.for("langgraph.api.sdk-logger");
|
|
56
|
+
const maybeGlobal = globalThis;
|
|
57
|
+
maybeGlobal[GLOBAL_LOGGER] = logger;
|
|
58
|
+
}
|
|
59
|
+
export async function registerRuntimeLogFormatter(formatter) {
|
|
60
|
+
RUNTIME_LOG_FORMATTER = formatter;
|
|
61
|
+
}
|
|
47
62
|
const formatStack = (stack) => {
|
|
48
63
|
if (!stack)
|
|
49
64
|
return stack;
|
package/dist/server.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { truncate, conn as opsConn } from "./storage/ops.mjs";
|
|
|
10
10
|
import { zValidator } from "@hono/zod-validator";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { queue } from "./queue.mjs";
|
|
13
|
-
import { logger, requestLogger } from "./logging.mjs";
|
|
13
|
+
import { logger, requestLogger, registerRuntimeLogFormatter, registerSdkLogger, } from "./logging.mjs";
|
|
14
14
|
import { checkpointer } from "./storage/checkpoint.mjs";
|
|
15
15
|
import { store as graphStore } from "./storage/store.mjs";
|
|
16
16
|
import { auth } from "./auth/custom.mjs";
|
|
@@ -74,8 +74,23 @@ export async function startServer(options) {
|
|
|
74
74
|
logger.info(`Flushing to persistent storage, exiting...`);
|
|
75
75
|
await Promise.all(callbacks.map((c) => c.flush()));
|
|
76
76
|
};
|
|
77
|
+
// Register global logger that can be consumed via SDK
|
|
78
|
+
// We need to do this before we load the graphs in-case the logger is obtained at top-level.
|
|
79
|
+
registerSdkLogger();
|
|
77
80
|
logger.info(`Registering graphs from ${options.cwd}`);
|
|
78
81
|
await registerFromEnv(options.graphs, { cwd: options.cwd });
|
|
82
|
+
// Make sure to register the runtime formatter after we've loaded the graphs
|
|
83
|
+
// to ensure that we're not loading `@langchain/langgraph` from different path.
|
|
84
|
+
const { getConfig } = await import("@langchain/langgraph");
|
|
85
|
+
registerRuntimeLogFormatter((info) => {
|
|
86
|
+
const config = getConfig();
|
|
87
|
+
if (config == null)
|
|
88
|
+
return info;
|
|
89
|
+
const node = config.metadata?.["langgraph_node"];
|
|
90
|
+
if (node != null)
|
|
91
|
+
info.langgraph_node = node;
|
|
92
|
+
return info;
|
|
93
|
+
});
|
|
79
94
|
const app = new Hono();
|
|
80
95
|
// Loopback fetch used by webhooks and custom routes
|
|
81
96
|
bindLoopbackFetch(app);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/langgraph-api",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.52",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "^18.19.0 || >=20.16.0"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@babel/code-frame": "^7.26.2",
|
|
53
53
|
"@hono/node-server": "^1.12.0",
|
|
54
54
|
"@hono/zod-validator": "^0.2.2",
|
|
55
|
-
"@langchain/langgraph-ui": "0.0.
|
|
55
|
+
"@langchain/langgraph-ui": "0.0.52",
|
|
56
56
|
"@types/json-schema": "^7.0.15",
|
|
57
57
|
"@typescript/vfs": "^1.6.0",
|
|
58
58
|
"dedent": "^1.5.3",
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@langchain/core": "^0.3.59",
|
|
87
|
-
"@langchain/langgraph": "0.3.
|
|
87
|
+
"@langchain/langgraph": "0.3.11",
|
|
88
88
|
"@langchain/langgraph-checkpoint": "0.0.18",
|
|
89
|
-
"@langchain/langgraph-sdk": "0.0.
|
|
89
|
+
"@langchain/langgraph-sdk": "0.0.102",
|
|
90
90
|
"@types/babel__code-frame": "^7.0.6",
|
|
91
91
|
"@types/node": "^18.15.11",
|
|
92
92
|
"@types/react": "^19.0.8",
|