@langgraph-js/pure-graph 1.4.7 → 1.5.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 CHANGED
@@ -54,26 +54,39 @@ To integrate Pure Graph into a Next.js project, follow these steps:
54
54
 
55
55
  ```js
56
56
  // app/api/langgraph/[...path]/route.ts
57
- import { ensureInitialized } from '@langgraph-js/pure-graph/dist/adapter/nextjs/index.js';
58
- import { registerGraph } from '@langgraph-js/pure-graph';
59
- import { graph } from '../../../agent/graph-name/graph';
60
- const init = async () => {
61
- registerGraph('test', graph);
57
+ import { NextRequest } from 'next/server';
58
+ import { ensureInitialized } from '@langgraph-js/pure-graph/dist/adapter/nextjs/index';
59
+ export const dynamic = 'force-dynamic';
60
+ export const revalidate = 0;
61
+
62
+ const registerGraph = async () => {
63
+ // You must separate graph registration and the router file to avoid Next.js loading the graph multiple times.
64
+ // 必须分开写注册图和 router 文件,以避免 nextjs 多次加载的问题
65
+ await import('@/agent/index');
62
66
  };
63
- export async function GET(request) {
64
- const { GET } = await ensureInitialized(init);
65
- return GET(request);
66
- }
67
67
 
68
- export async function POST(request) {
69
- const { POST } = await ensureInitialized(init);
70
- return POST(request);
71
- }
68
+ export const GET = async (req: NextRequest, context: any) => {
69
+ const { GET } = await ensureInitialized(registerGraph);
70
+ return GET(req);
71
+ };
72
72
 
73
- export async function DELETE(request) {
74
- const { DELETE } = await ensureInitialized(init);
75
- return DELETE(request);
76
- }
73
+ export const POST = async (req: NextRequest, context: any) => {
74
+ const { POST } = await ensureInitialized(registerGraph);
75
+ return POST(req);
76
+ };
77
+
78
+ export const DELETE = async (req: NextRequest, context: any) => {
79
+ const { DELETE } = await ensureInitialized(registerGraph);
80
+ return DELETE(req);
81
+ };
82
+ ```
83
+
84
+ ```ts
85
+ // @/agent/index.ts
86
+ import { registerGraph } from '@langgraph-js/pure-graph';
87
+ import graph from 'you-langgraph-graph';
88
+ registerGraph('test', graph);
89
+ export {};
77
90
  ```
78
91
 
79
92
  2. **Configure Environment Variables**
@@ -99,17 +112,71 @@ To integrate Pure Graph into a Hono.js project, follow these steps:
99
112
  import { registerGraph } from '@langgraph-js/pure-graph';
100
113
  import { graph } from './agent/graph-name/graph';
101
114
  import { Hono } from 'hono';
102
- import LangGraphApp from '@langgraph-js/pure-graph/dist/adapter/hono/index';
115
+ import LangGraphApp, { type LangGraphServerContext } from '@langgraph-js/pure-graph/dist/adapter/hono/index';
103
116
 
104
117
  registerGraph('test', graph);
105
118
 
106
- const app = new Hono();
119
+ const app = new Hono<{ Variables: LangGraphServerContext }>();
120
+
107
121
  app.route('/', LangGraphApp);
108
122
 
109
123
  export default app;
110
124
  ```
111
125
 
112
- 2. **Configure Environment Variables**
126
+ 2. **Using LangGraph Entrypoint (Recommended)**
127
+
128
+ For more advanced use cases, you can use LangGraph's `entrypoint` function to create reusable workflows:
129
+
130
+ ```ts
131
+ // agent/entrypoint-graph.ts
132
+ import { Annotation, entrypoint, getConfig } from '@langchain/langgraph';
133
+ import { createReactAgent, createReactAgentAnnotation } from '@langchain/langgraph/prebuilt';
134
+ import { createState } from '@langgraph-js/pro';
135
+ import { createEntrypointGraph } from '@langgraph-js/pure-graph';
136
+ import { ChatOpenAI } from '@langchain/openai';
137
+
138
+ const State = createState(createReactAgentAnnotation()).build({});
139
+
140
+ const workflow = entrypoint('my-entrypoint', async (state: typeof State.State) => {
141
+ // Access context set by middleware
142
+ const config = getConfig();
143
+ console.log('User ID from context:', config.configurable?.userId);
144
+
145
+ const agent = createReactAgent({
146
+ llm: new ChatOpenAI({
147
+ model: 'your-model',
148
+ }),
149
+ prompt: 'You are a helpful assistant',
150
+ tools: [], // Add your tools here
151
+ });
152
+
153
+ return agent.invoke(state);
154
+ });
155
+
156
+ export const graph = createEntrypointGraph({
157
+ stateSchema: State,
158
+ graph: workflow,
159
+ });
160
+ ```
161
+
162
+ ```ts
163
+ // app.ts
164
+ import { registerGraph } from '@langgraph-js/pure-graph';
165
+ import { graph as entrypointGraph } from './agent/entrypoint-graph';
166
+ import { Hono } from 'hono';
167
+ import LangGraphApp, { type LangGraphServerContext } from '@langgraph-js/pure-graph/dist/adapter/hono/index';
168
+
169
+ // Register your entrypoint graph
170
+ registerGraph('my-entrypoint', entrypointGraph);
171
+
172
+ const app = new Hono<{ Variables: LangGraphServerContext }>();
173
+
174
+ app.route('/', LangGraphApp);
175
+
176
+ export default app;
177
+ ```
178
+
179
+ 3. **Configure Environment Variables**
113
180
 
114
181
  Add the necessary environment variables to your `.env` file.
115
182
 
@@ -119,6 +186,151 @@ To integrate Pure Graph into a Hono.js project, follow these steps:
119
186
  REDIS_URL="" # Required if using Redis
120
187
  ```
121
188
 
189
+ ## Context Passing
190
+
191
+ Pure Graph supports passing custom context data to your graphs, which can be accessed via `getConfig().configurable` in your graph logic. This allows you to inject user-specific data, session information, or any other custom data into your LangGraph workflows.
192
+
193
+ ### Graph Code Example
194
+
195
+ Here's how to access context in your graph logic:
196
+
197
+ ```ts
198
+ // agent/context-aware-graph.ts
199
+ import { Annotation, entrypoint, getConfig } from '@langchain/langgraph';
200
+ import { createReactAgent, createReactAgentAnnotation } from '@langchain/langgraph/prebuilt';
201
+ import { createState } from '@langgraph-js/pro';
202
+ import { createEntrypointGraph } from '@langgraph-js/pure-graph';
203
+ import { ChatOpenAI } from '@langchain/openai';
204
+
205
+ const State = createState(createReactAgentAnnotation()).build({});
206
+
207
+ const workflow = entrypoint('context-aware-graph', async (state: typeof State.State) => {
208
+ // Access context data passed from middleware
209
+ const config = getConfig();
210
+
211
+ // Context is available in config.configurable
212
+ const userId = config.configurable?.userId;
213
+ const sessionId = config.configurable?.sessionId;
214
+ const preferences = config.configurable?.preferences;
215
+
216
+ console.log('Context received:', {
217
+ userId,
218
+ sessionId,
219
+ preferences,
220
+ });
221
+
222
+ // Use context data in your graph logic
223
+ const systemMessage = `You are a helpful assistant for user ${userId || 'anonymous'}.
224
+ User preferences: ${JSON.stringify(preferences || {})}`;
225
+
226
+ const agent = createReactAgent({
227
+ llm: new ChatOpenAI({
228
+ model: 'your-model',
229
+ }),
230
+ prompt: systemMessage,
231
+ tools: [], // Add your tools here
232
+ });
233
+
234
+ return agent.invoke(state);
235
+ });
236
+
237
+ export const graph = createEntrypointGraph({
238
+ stateSchema: State,
239
+ graph: workflow,
240
+ });
241
+ ```
242
+
243
+ ### Hono.js Implementation
244
+
245
+ In Hono.js, you can inject context using middleware:
246
+
247
+ ```ts
248
+ // app.ts
249
+ import { registerGraph } from '@langgraph-js/pure-graph';
250
+ import { graph as contextAwareGraph } from './agent/context-aware-graph';
251
+ import { Hono } from 'hono';
252
+ import LangGraphApp, { type LangGraphServerContext } from '@langgraph-js/pure-graph/dist/adapter/hono/index';
253
+
254
+ // Register your context-aware graph
255
+ registerGraph('context-aware', contextAwareGraph);
256
+
257
+ const app = new Hono<{ Variables: LangGraphServerContext }>();
258
+
259
+ // Middleware to inject custom context
260
+ app.use('/api/langgraph/*', async (c, next) => {
261
+ // You can get context from authentication, request data, etc.
262
+ const userId = c.req.header('x-user-id') || 'anonymous';
263
+ const sessionId = c.req.header('x-session-id') || 'session-123';
264
+
265
+ c.set('langgraph_context', {
266
+ userId,
267
+ sessionId,
268
+ preferences: { theme: 'dark', language: 'zh' },
269
+ metadata: { source: 'hono-app', timestamp: new Date().toISOString() },
270
+ // Add any custom fields your graph needs
271
+ });
272
+
273
+ await next();
274
+ });
275
+
276
+ app.route('/api', LangGraphApp);
277
+
278
+ export default app;
279
+ ```
280
+
281
+ ### Next.js Implementation
282
+
283
+ In Next.js, you can inject context using middleware:
284
+
285
+ ```ts
286
+ // middleware.ts
287
+ import type { NextRequest } from 'next/server';
288
+ import { NextResponse } from 'next/server';
289
+
290
+ export function middleware(request: NextRequest) {
291
+ const requestHeaders = new Headers(request.headers);
292
+
293
+ // Add custom context to x-langgraph-context header
294
+ if (request.nextUrl.pathname.startsWith('/api/langgraph/')) {
295
+ // You can get context from cookies, headers, or other sources
296
+ const userId = request.cookies.get('user-id')?.value || 'anonymous';
297
+ const sessionId = request.cookies.get('session-id')?.value || 'session-123';
298
+
299
+ const langgraphContext = {
300
+ userId,
301
+ sessionId,
302
+ preferences: { theme: 'dark', language: 'zh' },
303
+ metadata: { source: 'nextjs-app', timestamp: new Date().toISOString() },
304
+ // Add any custom fields your graph needs
305
+ };
306
+
307
+ requestHeaders.set('x-langgraph-context', JSON.stringify(langgraphContext));
308
+ }
309
+
310
+ const response = NextResponse.next({
311
+ request: { headers: requestHeaders },
312
+ });
313
+
314
+ return response;
315
+ }
316
+
317
+ export const config = {
318
+ matcher: '/api/langgraph/:path*',
319
+ };
320
+ ```
321
+
322
+ ```ts
323
+ // app/api/langgraph/[...path]/route.ts
324
+ import { GET, POST, DELETE } from '@langgraph-js/pure-graph/dist/adapter/nextjs/router';
325
+ import { registerGraph } from '@langgraph-js/pure-graph';
326
+ import { graph as contextAwareGraph } from '@/agent/context-aware-graph';
327
+
328
+ // Register your context-aware graph
329
+ registerGraph('context-aware', contextAwareGraph);
330
+
331
+ export { GET, POST, DELETE };
332
+ ```
333
+
122
334
  ## Environment Configuration
123
335
 
124
336
  Here are the environment variables you need to configure:
@@ -1,3 +1,8 @@
1
1
  import { Hono } from 'hono';
2
- declare const app: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
2
+ export interface LangGraphServerContext {
3
+ langgraph_context: any;
4
+ }
5
+ declare const app: Hono<{
6
+ Variables: LangGraphServerContext;
7
+ }, import("hono/types").BlankSchema, "/">;
3
8
  export default app;
@@ -1,6 +1,6 @@
1
1
  import { Hono } from 'hono';
2
2
  import { zValidator } from '@hono/zod-validator';
3
- import { c as createEndpoint, s as serialiseAsDict } from '../../createEndpoint-B0FQz0jr.js';
3
+ import { c as createEndpoint, s as serialiseAsDict } from '../../createEndpoint-D56l-tDn.js';
4
4
  import { A as AssistantsSearchSchema, a as AssistantGraphQuerySchema, T as ThreadIdParamSchema, R as RunStreamPayloadSchema, b as RunListQuerySchema, c as RunIdParamSchema, d as RunCancelQuerySchema, e as ThreadStateUpdate, f as ThreadCreatePayloadSchema, g as ThreadSearchPayloadSchema } from '../../zod-BaCzVUl8.js';
5
5
  import { streamSSE } from 'hono/streaming';
6
6
  import z from 'zod';
@@ -33,6 +33,12 @@ api$1.post(
33
33
  const { thread_id } = c.req.valid("param");
34
34
  const payload = c.req.valid("json");
35
35
  return streamSSE(c, async (stream) => {
36
+ payload.config = payload.config || {};
37
+ payload.config.configurable = payload.config.configurable || {};
38
+ const langgraphContext = c.get("langgraph_context");
39
+ if (langgraphContext) {
40
+ Object.assign(payload.config.configurable, langgraphContext);
41
+ }
36
42
  for await (const { event, data } of client.runs.stream(thread_id, payload.assistant_id, payload)) {
37
43
  await stream.writeSSE({ data: serialiseAsDict(data) ?? "", event });
38
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/adapter/hono/endpoint.ts","../../../src/adapter/hono/assistants.ts","../../../src/adapter/hono/runs.ts","../../../src/adapter/hono/threads.ts","../../../src/adapter/hono/index.ts"],"sourcesContent":["import { createEndpoint } from '../../createEndpoint.js';\n\nexport const client = createEndpoint();\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\nimport { client } from './endpoint';\nimport { AssistantsSearchSchema, AssistantGraphQuerySchema } from '../zod';\nconst api = new Hono();\n\napi.post('/assistants/search', zValidator('json', AssistantsSearchSchema), async (c) => {\n // Search Assistants\n const payload = c.req.valid('json');\n let total = 0;\n const data = await client.assistants.search(payload);\n c.res.headers.set('X-Pagination-Total', total.toString());\n return c.json(data);\n});\n\napi.get('/assistants/:assistant_id/graph', zValidator('query', AssistantGraphQuerySchema), async (c) => {\n const xray = c.req.valid('query').xray;\n const data = await client.assistants.getGraph(c.req.param('assistant_id'), {\n xray: xray !== undefined ? xray === 'true' : undefined,\n });\n return c.json(data);\n});\n\nexport default api;\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\n\nimport { streamSSE } from 'hono/streaming';\nimport { client } from './endpoint';\nimport {\n ThreadIdParamSchema,\n RunIdParamSchema,\n RunStreamPayloadSchema,\n RunListQuerySchema,\n RunCancelQuerySchema,\n ThreadStateUpdate,\n} from '../zod';\nimport { serialiseAsDict } from '../../graph/stream';\nimport { RunnableConfig } from '@langchain/core/runnables';\nimport z from 'zod';\n\nconst api = new Hono();\n\n// 最常用的对话接口\napi.post(\n '/threads/:thread_id/runs/stream',\n zValidator('param', ThreadIdParamSchema),\n zValidator('json', RunStreamPayloadSchema),\n async (c) => {\n // Stream Run\n const { thread_id } = c.req.valid('param');\n const payload = c.req.valid('json');\n\n // c.header('Content-Location', `/threads/${thread_id}/runs/${run.run_id}`);\n return streamSSE(c, async (stream) => {\n /** @ts-ignore zod v3 的问题,与 ts 类型不一致 */\n for await (const { event, data } of client.runs.stream(thread_id, payload.assistant_id, payload)) {\n await stream.writeSSE({ data: serialiseAsDict(data) ?? '', event });\n }\n });\n },\n);\n\napi.get(\n '/threads/:thread_id/runs',\n zValidator('param', ThreadIdParamSchema),\n zValidator('query', RunListQuerySchema),\n async (c) => {\n const { thread_id } = c.req.valid('param');\n const { limit, offset, status } = c.req.valid('query');\n const runs = await client.runs.list(thread_id, { limit, offset, status });\n return c.json(runs);\n },\n);\n\napi.post(\n '/threads/:thread_id/runs/:run_id/cancel',\n zValidator('param', RunIdParamSchema),\n zValidator('query', RunCancelQuerySchema),\n async (c) => {\n // Cancel Run Http\n const { thread_id, run_id } = c.req.valid('param');\n const { wait, action } = c.req.valid('query');\n const cancel = client.runs.cancel(thread_id, run_id, wait, action);\n if (wait) {\n await cancel;\n }\n return c.body(null, wait ? 204 : 202);\n },\n);\n\napi.post(\n '/threads/:thread_id/state',\n zValidator('param', z.object({ thread_id: z.string().uuid() })),\n zValidator('json', ThreadStateUpdate),\n async (c) => {\n // Update Thread State\n const { thread_id } = c.req.valid('param');\n const payload = c.req.valid('json');\n // const config: RunnableConfig = { configurable: { thread_id } };\n\n // if (payload.checkpoint_id) {\n // config.configurable ??= {};\n // config.configurable.checkpoint_id = payload.checkpoint_id;\n // }\n // if (payload.checkpoint) {\n // config.configurable ??= {};\n // Object.assign(config.configurable, payload.checkpoint);\n // }\n\n const inserted = await client.threads.updateState(thread_id, payload);\n\n return c.json(inserted);\n },\n);\nexport default api;\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\nimport { client } from './endpoint';\nimport { ThreadIdParamSchema, ThreadCreatePayloadSchema, ThreadSearchPayloadSchema } from '../zod';\n\nconst api = new Hono();\n\n// Threads Routes\napi.post('/threads', zValidator('json', ThreadCreatePayloadSchema), async (c) => {\n const payload = c.req.valid('json');\n const thread = await client.threads.create(payload);\n\n return c.json(thread);\n});\n\napi.post('/threads/search', zValidator('json', ThreadSearchPayloadSchema), async (c) => {\n // Search Threads\n const payload = c.req.valid('json');\n const result = await client.threads.search(payload as any);\n c.res.headers.set('X-Pagination-Total', result.length.toString());\n return c.json(result);\n});\n\napi.get('/threads/:thread_id', zValidator('param', ThreadIdParamSchema), async (c) => {\n // Get Thread\n const { thread_id } = c.req.valid('param');\n return c.json(await client.threads.get(thread_id));\n});\n\napi.delete('/threads/:thread_id', zValidator('param', ThreadIdParamSchema), async (c) => {\n // Delete Thread\n const { thread_id } = c.req.valid('param');\n await client.threads.delete(thread_id);\n return new Response(null, { status: 204 });\n});\n\nexport default api;\n","import { Hono } from 'hono';\nimport Assistants from './assistants';\nimport Runs from './runs';\nimport Threads from './threads';\nimport { cors } from 'hono/cors';\nconst app = new Hono();\n\napp.use(cors());\n\napp.route('/', Assistants);\napp.route('/', Runs);\napp.route('/', Threads);\n\nexport default app;\n"],"names":["api","Assistants","Runs","Threads"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/adapter/hono/endpoint.ts","../../../src/adapter/hono/assistants.ts","../../../src/adapter/hono/runs.ts","../../../src/adapter/hono/threads.ts","../../../src/adapter/hono/index.ts"],"sourcesContent":["import { createEndpoint } from '../../createEndpoint.js';\n\nexport const client = createEndpoint();\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\nimport { client } from './endpoint';\nimport { AssistantsSearchSchema, AssistantGraphQuerySchema } from '../zod';\nconst api = new Hono();\n\napi.post('/assistants/search', zValidator('json', AssistantsSearchSchema), async (c) => {\n // Search Assistants\n const payload = c.req.valid('json');\n let total = 0;\n const data = await client.assistants.search(payload);\n c.res.headers.set('X-Pagination-Total', total.toString());\n return c.json(data);\n});\n\napi.get('/assistants/:assistant_id/graph', zValidator('query', AssistantGraphQuerySchema), async (c) => {\n const xray = c.req.valid('query').xray;\n const data = await client.assistants.getGraph(c.req.param('assistant_id'), {\n xray: xray !== undefined ? xray === 'true' : undefined,\n });\n return c.json(data);\n});\n\nexport default api;\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\n\nimport { streamSSE } from 'hono/streaming';\nimport { client } from './endpoint';\nimport {\n ThreadIdParamSchema,\n RunIdParamSchema,\n RunStreamPayloadSchema,\n RunListQuerySchema,\n RunCancelQuerySchema,\n ThreadStateUpdate,\n} from '../zod';\nimport { serialiseAsDict } from '../../graph/stream';\nimport z from 'zod';\nimport type { LangGraphServerContext } from './index';\n\nconst api = new Hono<{ Variables: LangGraphServerContext }>();\n\n// 最常用的对话接口\napi.post(\n '/threads/:thread_id/runs/stream',\n zValidator('param', ThreadIdParamSchema),\n zValidator('json', RunStreamPayloadSchema),\n async (c) => {\n // Stream Run\n const { thread_id } = c.req.valid('param');\n const payload = c.req.valid('json');\n\n // c.header('Content-Location', `/threads/${thread_id}/runs/${run.run_id}`);\n return streamSSE(c, async (stream) => {\n payload.config = payload.config || {};\n payload.config.configurable = payload.config.configurable || {};\n const langgraphContext = c.get('langgraph_context');\n if (langgraphContext) {\n Object.assign(payload.config.configurable, langgraphContext);\n }\n /** @ts-ignore zod v3 的问题,与 ts 类型不一致 */\n for await (const { event, data } of client.runs.stream(thread_id, payload.assistant_id, payload)) {\n await stream.writeSSE({ data: serialiseAsDict(data) ?? '', event });\n }\n });\n },\n);\n\napi.get(\n '/threads/:thread_id/runs',\n zValidator('param', ThreadIdParamSchema),\n zValidator('query', RunListQuerySchema),\n async (c) => {\n const { thread_id } = c.req.valid('param');\n const { limit, offset, status } = c.req.valid('query');\n const runs = await client.runs.list(thread_id, { limit, offset, status });\n return c.json(runs);\n },\n);\n\napi.post(\n '/threads/:thread_id/runs/:run_id/cancel',\n zValidator('param', RunIdParamSchema),\n zValidator('query', RunCancelQuerySchema),\n async (c) => {\n // Cancel Run Http\n const { thread_id, run_id } = c.req.valid('param');\n const { wait, action } = c.req.valid('query');\n const cancel = client.runs.cancel(thread_id, run_id, wait, action);\n if (wait) {\n await cancel;\n }\n return c.body(null, wait ? 204 : 202);\n },\n);\n\napi.post(\n '/threads/:thread_id/state',\n zValidator('param', z.object({ thread_id: z.string().uuid() })),\n zValidator('json', ThreadStateUpdate),\n async (c) => {\n // Update Thread State\n const { thread_id } = c.req.valid('param');\n const payload = c.req.valid('json');\n // const config: RunnableConfig = { configurable: { thread_id } };\n\n // if (payload.checkpoint_id) {\n // config.configurable ??= {};\n // config.configurable.checkpoint_id = payload.checkpoint_id;\n // }\n // if (payload.checkpoint) {\n // config.configurable ??= {};\n // Object.assign(config.configurable, payload.checkpoint);\n // }\n\n const inserted = await client.threads.updateState(thread_id, payload);\n\n return c.json(inserted);\n },\n);\nexport default api;\n","import { zValidator } from '@hono/zod-validator';\nimport { Hono } from 'hono';\nimport { client } from './endpoint';\nimport { ThreadIdParamSchema, ThreadCreatePayloadSchema, ThreadSearchPayloadSchema } from '../zod';\n\nconst api = new Hono();\n\n// Threads Routes\napi.post('/threads', zValidator('json', ThreadCreatePayloadSchema), async (c) => {\n const payload = c.req.valid('json');\n const thread = await client.threads.create(payload);\n\n return c.json(thread);\n});\n\napi.post('/threads/search', zValidator('json', ThreadSearchPayloadSchema), async (c) => {\n // Search Threads\n const payload = c.req.valid('json');\n const result = await client.threads.search(payload as any);\n c.res.headers.set('X-Pagination-Total', result.length.toString());\n return c.json(result);\n});\n\napi.get('/threads/:thread_id', zValidator('param', ThreadIdParamSchema), async (c) => {\n // Get Thread\n const { thread_id } = c.req.valid('param');\n return c.json(await client.threads.get(thread_id));\n});\n\napi.delete('/threads/:thread_id', zValidator('param', ThreadIdParamSchema), async (c) => {\n // Delete Thread\n const { thread_id } = c.req.valid('param');\n await client.threads.delete(thread_id);\n return new Response(null, { status: 204 });\n});\n\nexport default api;\n","import { Hono } from 'hono';\nimport Assistants from './assistants';\nimport Runs from './runs';\nimport Threads from './threads';\nimport { cors } from 'hono/cors';\n\nexport interface LangGraphServerContext {\n langgraph_context: any;\n}\nconst app = new Hono<{ Variables: LangGraphServerContext }>();\n\napp.use(cors());\n\napp.route('/', Assistants);\napp.route('/', Runs);\napp.route('/', Threads);\n\nexport default app;\n"],"names":["api","Assistants","Runs","Threads"],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import { Hono } from 'hono';
2
- declare const api: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
2
+ import type { LangGraphServerContext } from './index';
3
+ declare const api: Hono<{
4
+ Variables: LangGraphServerContext;
5
+ }, import("hono/types").BlankSchema, "/">;
3
6
  export default api;
@@ -2,7 +2,7 @@ async function ensureInitialized(attachGraphPromise) {
2
2
  if (globalThis.LG_INIT_PROMISE === void 0) {
3
3
  globalThis.LG_INIT_PROMISE = (async () => {
4
4
  await attachGraphPromise();
5
- const { GET, POST, DELETE } = await import('../../router-DqflDUWZ.js');
5
+ const { GET, POST, DELETE } = await import('../../router-BbUgLFyh.js');
6
6
  return {
7
7
  GET,
8
8
  POST,
@@ -1274,7 +1274,7 @@ const createMessageQueue = async () => {
1274
1274
  let q;
1275
1275
  if (process.env.REDIS_URL) {
1276
1276
  console.debug("LG | Using redis as stream queue");
1277
- const { RedisStreamQueue } = await import('./queue-Cao_-0hm.js');
1277
+ const { RedisStreamQueue } = await import('./queue-BnmSDnCz.js');
1278
1278
  q = RedisStreamQueue;
1279
1279
  } else {
1280
1280
  q = MemoryStreamQueue;
@@ -1519,14 +1519,14 @@ const createEndpoint = () => {
1519
1519
  return LangGraphGlobal.globalMessageQueue.cancelQueue(runId);
1520
1520
  },
1521
1521
  async *stream(threadId, assistantId, payload) {
1522
- if (!payload.config) {
1523
- payload.config = {
1524
- configurable: {
1525
- graph_id: assistantId,
1526
- thread_id: threadId
1527
- }
1528
- };
1529
- }
1522
+ payload.config = {
1523
+ ...payload.config ?? {},
1524
+ configurable: {
1525
+ ...payload.config?.configurable ?? {},
1526
+ graph_id: assistantId,
1527
+ thread_id: threadId
1528
+ }
1529
+ };
1530
1530
  for await (const data of streamState(
1531
1531
  threads,
1532
1532
  threads.createRun(threadId, assistantId, payload),
@@ -1547,4 +1547,4 @@ const createEndpoint = () => {
1547
1547
  };
1548
1548
 
1549
1549
  export { AssistantEndpoint as A, BaseStreamQueue as B, CancelEventMessage as C, LangGraphGlobal as L, createEndpoint as c, registerGraph as r, serialiseAsDict as s };
1550
- //# sourceMappingURL=createEndpoint-B0FQz0jr.js.map
1550
+ //# sourceMappingURL=createEndpoint-D56l-tDn.js.map