@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 +232 -20
- package/dist/adapter/hono/index.d.ts +6 -1
- package/dist/adapter/hono/index.js +7 -1
- package/dist/adapter/hono/index.js.map +1 -1
- package/dist/adapter/hono/runs.d.ts +4 -1
- package/dist/adapter/nextjs/index.js +1 -1
- package/dist/{createEndpoint-B0FQz0jr.js → createEndpoint-D56l-tDn.js} +10 -10
- package/dist/{createEndpoint-B0FQz0jr.js.map → createEndpoint-D56l-tDn.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{queue-Cao_-0hm.js → queue-BnmSDnCz.js} +2 -2
- package/dist/{queue-Cao_-0hm.js.map → queue-BnmSDnCz.js.map} +1 -1
- package/dist/{router-DqflDUWZ.js → router-BbUgLFyh.js} +10 -2
- package/dist/router-BbUgLFyh.js.map +1 -0
- package/package.json +1 -1
- package/dist/router-DqflDUWZ.js.map +0 -1
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 {
|
|
58
|
-
import {
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
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
|
|
69
|
-
const {
|
|
70
|
-
return
|
|
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
|
|
74
|
-
const {
|
|
75
|
-
return
|
|
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. **
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
1523
|
-
payload.config
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
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-
|
|
1550
|
+
//# sourceMappingURL=createEndpoint-D56l-tDn.js.map
|