@langgraph-js/sdk 1.6.2 → 1.6.3

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.
@@ -8,5 +8,7 @@ export declare class ToolRenderData<D> {
8
8
  get input(): any;
9
9
  get output(): string;
10
10
  getJSONOutput(): any;
11
+ /** 如果解析失败,则返回 null */
12
+ getJSONOutputSafe(): any;
11
13
  response(data: D): void;
12
14
  }
@@ -25,6 +25,15 @@ export class ToolRenderData {
25
25
  getJSONOutput() {
26
26
  return JSON.parse(this.output);
27
27
  }
28
+ /** 如果解析失败,则返回 null */
29
+ getJSONOutputSafe() {
30
+ try {
31
+ return JSON.parse(this.output);
32
+ }
33
+ catch (e) {
34
+ return null;
35
+ }
36
+ }
28
37
  response(data) {
29
38
  this.client.doneFEToolWaiting(this.message.id, JSON.stringify(data));
30
39
  }
@@ -13,6 +13,8 @@ export interface UnionTool<Args extends ZodRawShape, Child extends Object = Obje
13
13
  callbackMessage?: (result: CallToolResult) => Message[];
14
14
  render?: <D>(tool: ToolRenderData<D>) => Child;
15
15
  onlyRender?: boolean;
16
+ /** 只允许指定的 agent 使用该工具,如果未指定,则所有 agent 都可以使用 */
17
+ allowAgent?: string[];
16
18
  }
17
19
  export type ToolCallback<Args extends ZodRawShape> = (args: z.objectOutputType<Args, ZodTypeAny>, context?: any) => CallToolResult | Promise<CallToolResult>;
18
20
  export type CallToolResult = string | {
@@ -24,7 +26,9 @@ export declare const createTool: <Args extends ZodRawShape>(tool: UnionTool<Args
24
26
  /** 提供一种兼容 copilotkit 的定义方式,简化定义形式
25
27
  * 来自 copilotkit 的 frontend action
26
28
  */
27
- export declare const createFETool: <const T extends Parameter[], Args extends ZodRawShape>(tool: Action<T>) => UnionTool<Args>;
29
+ export declare const createFETool: <const T extends Parameter[], Args extends ZodRawShape>(tool: Action<T> & {
30
+ allowAgent?: string[];
31
+ }) => UnionTool<Args>;
28
32
  export declare const createJSONDefineTool: <Args extends ZodRawShape>(tool: UnionTool<Args>) => {
29
33
  name: string;
30
34
  description: string;
@@ -49,6 +53,7 @@ export declare const createMCPTool: <Args extends ZodRawShape>(tool: UnionTool<A
49
53
  isError: boolean;
50
54
  }>))[];
51
55
  export declare const createToolUI: <Args extends Parameter[] | [] = [], Child extends Object = {}>(tool: Action<Args> & {
56
+ allowAgent?: string[];
52
57
  render?: (tool: ToolRenderData<any>) => Child;
53
58
  onlyRender?: boolean;
54
59
  }) => {
@@ -62,4 +67,6 @@ export declare const createToolUI: <Args extends Parameter[] | [] = [], Child ex
62
67
  execute: ToolCallback<z.ZodRawShape>;
63
68
  /** 工具执行成功后触发的附加消息 */
64
69
  callbackMessage?: (result: CallToolResult) => Message[];
70
+ /** 只允许指定的 agent 使用该工具,如果未指定,则所有 agent 都可以使用 */
71
+ allowAgent?: string[];
65
72
  };
@@ -15,6 +15,7 @@ export const createFETool = (tool) => {
15
15
  parameters: convertJsonSchemaToZodRawShape(actionParametersToJsonSchema(tool.parameters || [])),
16
16
  returnDirect: tool.returnDirect,
17
17
  callbackMessage: tool.callbackMessage,
18
+ allowAgent: tool.allowAgent,
18
19
  async execute(args, context) {
19
20
  var _a;
20
21
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langgraph-js/sdk",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "The UI SDK for LangGraph - seamlessly integrate your AI agents with frontend interfaces",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -27,6 +27,14 @@ export class ToolRenderData<D> {
27
27
  getJSONOutput() {
28
28
  return JSON.parse(this.output);
29
29
  }
30
+ /** 如果解析失败,则返回 null */
31
+ getJSONOutputSafe() {
32
+ try {
33
+ return JSON.parse(this.output);
34
+ } catch (e) {
35
+ return null;
36
+ }
37
+ }
30
38
  response(data: D) {
31
39
  this.client.doneFEToolWaiting(this.message.id!, JSON.stringify(data));
32
40
  }
@@ -16,6 +16,8 @@ export interface UnionTool<Args extends ZodRawShape, Child extends Object = Obje
16
16
  callbackMessage?: (result: CallToolResult) => Message[];
17
17
  render?: <D>(tool: ToolRenderData<D>) => Child;
18
18
  onlyRender?: boolean;
19
+ /** 只允许指定的 agent 使用该工具,如果未指定,则所有 agent 都可以使用 */
20
+ allowAgent?: string[];
19
21
  }
20
22
  export type ToolCallback<Args extends ZodRawShape> = (args: z.objectOutputType<Args, ZodTypeAny>, context?: any) => CallToolResult | Promise<CallToolResult>;
21
23
 
@@ -29,13 +31,18 @@ export const createTool = <Args extends ZodRawShape>(tool: UnionTool<Args>) => {
29
31
  /** 提供一种兼容 copilotkit 的定义方式,简化定义形式
30
32
  * 来自 copilotkit 的 frontend action
31
33
  */
32
- export const createFETool = <const T extends Parameter[], Args extends ZodRawShape>(tool: Action<T>): UnionTool<Args> => {
34
+ export const createFETool = <const T extends Parameter[], Args extends ZodRawShape>(
35
+ tool: Action<T> & {
36
+ allowAgent?: string[];
37
+ }
38
+ ): UnionTool<Args> => {
33
39
  return {
34
40
  name: tool.name,
35
41
  description: tool.description || "",
36
42
  parameters: convertJsonSchemaToZodRawShape(actionParametersToJsonSchema(tool.parameters || [])) as any,
37
43
  returnDirect: tool.returnDirect,
38
44
  callbackMessage: tool.callbackMessage,
45
+ allowAgent: tool.allowAgent,
39
46
  async execute(args, context) {
40
47
  try {
41
48
  const result = await tool.handler?.(args, context);
@@ -80,7 +87,13 @@ export const createMCPTool = <Args extends ZodRawShape>(tool: UnionTool<Args>) =
80
87
  ];
81
88
  };
82
89
 
83
- export const createToolUI = <Args extends Parameter[] | [] = [], Child extends Object = {}>(tool: Action<Args> & { render?: (tool: ToolRenderData<any>) => Child; onlyRender?: boolean }) => {
90
+ export const createToolUI = <Args extends Parameter[] | [] = [], Child extends Object = {}>(
91
+ tool: Action<Args> & {
92
+ allowAgent?: string[];
93
+ render?: (tool: ToolRenderData<any>) => Child;
94
+ onlyRender?: boolean;
95
+ }
96
+ ) => {
84
97
  return {
85
98
  ...createFETool(tool),
86
99
  render: tool.render,