@librechat/agents 1.4.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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/common/enum.cjs +108 -0
  3. package/dist/cjs/common/enum.cjs.map +1 -0
  4. package/dist/cjs/events.cjs +104 -0
  5. package/dist/cjs/events.cjs.map +1 -0
  6. package/dist/cjs/graphs/Graph.cjs +313 -0
  7. package/dist/cjs/graphs/Graph.cjs.map +1 -0
  8. package/dist/cjs/llm/providers.cjs +30 -0
  9. package/dist/cjs/llm/providers.cjs.map +1 -0
  10. package/dist/cjs/main.cjs +59 -0
  11. package/dist/cjs/main.cjs.map +1 -0
  12. package/dist/cjs/messages.cjs +195 -0
  13. package/dist/cjs/messages.cjs.map +1 -0
  14. package/dist/cjs/run.cjs +106 -0
  15. package/dist/cjs/run.cjs.map +1 -0
  16. package/dist/cjs/stream.cjs +133 -0
  17. package/dist/cjs/stream.cjs.map +1 -0
  18. package/dist/cjs/tools/ToolNode.cjs +80 -0
  19. package/dist/cjs/tools/ToolNode.cjs.map +1 -0
  20. package/dist/cjs/utils/graph.cjs +16 -0
  21. package/dist/cjs/utils/graph.cjs.map +1 -0
  22. package/dist/cjs/utils/run.cjs +59 -0
  23. package/dist/cjs/utils/run.cjs.map +1 -0
  24. package/dist/esm/common/enum.mjs +108 -0
  25. package/dist/esm/common/enum.mjs.map +1 -0
  26. package/dist/esm/events.mjs +97 -0
  27. package/dist/esm/events.mjs.map +1 -0
  28. package/dist/esm/graphs/Graph.mjs +310 -0
  29. package/dist/esm/graphs/Graph.mjs.map +1 -0
  30. package/dist/esm/llm/providers.mjs +27 -0
  31. package/dist/esm/llm/providers.mjs.map +1 -0
  32. package/dist/esm/main.mjs +9 -0
  33. package/dist/esm/main.mjs.map +1 -0
  34. package/dist/esm/messages.mjs +190 -0
  35. package/dist/esm/messages.mjs.map +1 -0
  36. package/dist/esm/run.mjs +104 -0
  37. package/dist/esm/run.mjs.map +1 -0
  38. package/dist/esm/stream.mjs +131 -0
  39. package/dist/esm/stream.mjs.map +1 -0
  40. package/dist/esm/tools/ToolNode.mjs +77 -0
  41. package/dist/esm/tools/ToolNode.mjs.map +1 -0
  42. package/dist/esm/utils/graph.mjs +13 -0
  43. package/dist/esm/utils/graph.mjs.map +1 -0
  44. package/dist/esm/utils/run.mjs +57 -0
  45. package/dist/esm/utils/run.mjs.map +1 -0
  46. package/dist/types/common/enum.d.ts +79 -0
  47. package/dist/types/common/index.d.ts +1 -0
  48. package/dist/types/events.d.ts +22 -0
  49. package/dist/types/graphs/Graph.d.ts +86 -0
  50. package/dist/types/graphs/index.d.ts +1 -0
  51. package/dist/types/index.d.ts +8 -0
  52. package/dist/types/llm/providers.d.ts +4 -0
  53. package/dist/types/messages.d.ts +10 -0
  54. package/dist/types/prompts/collab.d.ts +1 -0
  55. package/dist/types/prompts/index.d.ts +2 -0
  56. package/dist/types/prompts/taskmanager.d.ts +41 -0
  57. package/dist/types/run.d.ts +21 -0
  58. package/dist/types/scripts/args.d.ts +6 -0
  59. package/dist/types/scripts/cli.d.ts +1 -0
  60. package/dist/types/scripts/cli2.d.ts +1 -0
  61. package/dist/types/scripts/cli3.d.ts +1 -0
  62. package/dist/types/scripts/cli4.d.ts +1 -0
  63. package/dist/types/scripts/cli5.d.ts +1 -0
  64. package/dist/types/scripts/empty_input.d.ts +1 -0
  65. package/dist/types/stream.d.ts +5 -0
  66. package/dist/types/tools/ToolNode.d.ts +15 -0
  67. package/dist/types/tools/example.d.ts +26 -0
  68. package/dist/types/types/graph.d.ts +108 -0
  69. package/dist/types/types/index.d.ts +5 -0
  70. package/dist/types/types/llm.d.ts +25 -0
  71. package/dist/types/types/run.d.ts +53 -0
  72. package/dist/types/types/stream.d.ts +134 -0
  73. package/dist/types/types/tools.d.ts +24 -0
  74. package/dist/types/utils/graph.d.ts +2 -0
  75. package/dist/types/utils/index.d.ts +2 -0
  76. package/dist/types/utils/llmConfig.d.ts +2 -0
  77. package/dist/types/utils/logging.d.ts +1 -0
  78. package/dist/types/utils/run.d.ts +20 -0
  79. package/package.json +142 -0
  80. package/src/common/enum.ts +121 -0
  81. package/src/common/index.ts +2 -0
  82. package/src/events.ts +110 -0
  83. package/src/graphs/Graph.ts +416 -0
  84. package/src/graphs/index.ts +1 -0
  85. package/src/index.ts +15 -0
  86. package/src/llm/providers.ts +27 -0
  87. package/src/messages.ts +210 -0
  88. package/src/prompts/collab.ts +6 -0
  89. package/src/prompts/index.ts +2 -0
  90. package/src/prompts/taskmanager.ts +61 -0
  91. package/src/proto/CollabGraph.ts +269 -0
  92. package/src/proto/TaskManager.ts +243 -0
  93. package/src/proto/collab.ts +200 -0
  94. package/src/proto/collab_design.ts +184 -0
  95. package/src/proto/collab_design_v2.ts +224 -0
  96. package/src/proto/collab_design_v3.ts +255 -0
  97. package/src/proto/collab_design_v4.ts +220 -0
  98. package/src/proto/collab_design_v5.ts +251 -0
  99. package/src/proto/collab_graph.ts +181 -0
  100. package/src/proto/collab_original.ts +123 -0
  101. package/src/proto/example.ts +93 -0
  102. package/src/proto/example_new.ts +68 -0
  103. package/src/proto/example_old.ts +201 -0
  104. package/src/proto/example_test.ts +152 -0
  105. package/src/proto/example_test_anthropic.ts +100 -0
  106. package/src/proto/log_stream.ts +202 -0
  107. package/src/proto/main_collab_community_event.ts +133 -0
  108. package/src/proto/main_collab_design_v2.ts +96 -0
  109. package/src/proto/main_collab_design_v4.ts +100 -0
  110. package/src/proto/main_collab_design_v5.ts +135 -0
  111. package/src/proto/main_collab_global_analysis.ts +122 -0
  112. package/src/proto/main_collab_hackathon_event.ts +153 -0
  113. package/src/proto/main_collab_space_mission.ts +153 -0
  114. package/src/proto/main_philosophy.ts +210 -0
  115. package/src/proto/original_script.ts +126 -0
  116. package/src/proto/standard.ts +100 -0
  117. package/src/proto/stream.ts +56 -0
  118. package/src/proto/tasks.ts +118 -0
  119. package/src/proto/tools/global_analysis_tools.ts +86 -0
  120. package/src/proto/tools/space_mission_tools.ts +60 -0
  121. package/src/proto/vertexai.ts +54 -0
  122. package/src/run.ts +132 -0
  123. package/src/scripts/args.ts +42 -0
  124. package/src/scripts/cli.ts +166 -0
  125. package/src/scripts/cli2.ts +124 -0
  126. package/src/scripts/cli3.ts +175 -0
  127. package/src/scripts/cli4.ts +182 -0
  128. package/src/scripts/cli5.ts +182 -0
  129. package/src/scripts/empty_input.ts +136 -0
  130. package/src/stream.ts +145 -0
  131. package/src/tools/ToolNode.ts +108 -0
  132. package/src/tools/example.ts +52 -0
  133. package/src/types/graph.ts +126 -0
  134. package/src/types/index.ts +6 -0
  135. package/src/types/llm.ts +38 -0
  136. package/src/types/run.ts +56 -0
  137. package/src/types/stream.ts +174 -0
  138. package/src/types/tools.ts +31 -0
  139. package/src/utils/graph.ts +11 -0
  140. package/src/utils/index.ts +2 -0
  141. package/src/utils/llmConfig.ts +50 -0
  142. package/src/utils/logging.ts +48 -0
  143. package/src/utils/run.ts +91 -0
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var langgraph = require('@langchain/langgraph');
4
+ var messages = require('@langchain/core/messages');
5
+ var run = require('../utils/run.cjs');
6
+ var _enum = require('../common/enum.cjs');
7
+
8
+ class ToolNode extends run.RunnableCallable {
9
+ tools;
10
+ toolMap;
11
+ loadRuntimeTools;
12
+ handleToolErrors = true;
13
+ constructor({ tools, toolMap, name, tags, handleToolErrors, loadRuntimeTools, }) {
14
+ super({ name, tags, func: (input, config) => this.run(input, config) });
15
+ this.tools = tools;
16
+ this.toolMap = toolMap ?? new Map(tools.map(tool => [tool.name, tool]));
17
+ this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;
18
+ this.loadRuntimeTools = loadRuntimeTools;
19
+ }
20
+ async run(input, config) {
21
+ const message = Array.isArray(input)
22
+ ? input[input.length - 1]
23
+ : input.messages[input.messages.length - 1];
24
+ if (message._getType() !== 'ai') {
25
+ throw new Error('ToolNode only accepts AIMessages as input.');
26
+ }
27
+ if (this.loadRuntimeTools) {
28
+ const { tools, toolMap } = this.loadRuntimeTools(message.tool_calls ?? []);
29
+ this.tools = tools;
30
+ this.toolMap = toolMap ?? new Map(tools.map(tool => [tool.name, tool]));
31
+ }
32
+ const outputs = await Promise.all(message.tool_calls?.map(async (call) => {
33
+ const tool = this.toolMap.get(call.name);
34
+ try {
35
+ if (tool === undefined) {
36
+ throw new Error(`Tool "${call.name}" not found.`);
37
+ }
38
+ const output = await tool.invoke({ ...call, type: 'tool_call' }, config);
39
+ if (messages.isBaseMessage(output) && output._getType() === 'tool') {
40
+ return output;
41
+ }
42
+ else {
43
+ return new messages.ToolMessage({
44
+ name: tool.name,
45
+ content: typeof output === 'string' ? output : JSON.stringify(output),
46
+ tool_call_id: call.id,
47
+ });
48
+ }
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ }
51
+ catch (e) {
52
+ if (!this.handleToolErrors) {
53
+ throw e;
54
+ }
55
+ return new messages.ToolMessage({
56
+ content: `Error: ${e.message}\n Please fix your mistakes.`,
57
+ name: call.name,
58
+ tool_call_id: call.id ?? '',
59
+ });
60
+ }
61
+ }) ?? []);
62
+ return Array.isArray(input) ? outputs : { messages: outputs };
63
+ }
64
+ }
65
+ function toolsCondition(state) {
66
+ const message = Array.isArray(state)
67
+ ? state[state.length - 1]
68
+ : state.messages[state.messages.length - 1];
69
+ if ('tool_calls' in message &&
70
+ (message.tool_calls?.length ?? 0) > 0) {
71
+ return _enum.GraphNodeKeys.TOOLS;
72
+ }
73
+ else {
74
+ return langgraph.END;
75
+ }
76
+ }
77
+
78
+ exports.ToolNode = ToolNode;
79
+ exports.toolsCondition = toolsCondition;
80
+ //# sourceMappingURL=ToolNode.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolNode.cjs","sources":["../../../src/tools/ToolNode.ts"],"sourcesContent":["import { END } from '@langchain/langgraph';\nimport { ToolMessage, isBaseMessage } from '@langchain/core/messages';\nimport type { RunnableConfig, RunnableToolLike } from '@langchain/core/runnables';\nimport type { MessagesState } from '@langchain/langgraph/dist/graph/message';\nimport type { BaseMessage, AIMessage } from '@langchain/core/messages';\nimport type { StructuredToolInterface } from '@langchain/core/tools';\nimport type * as t from '@/types';\nimport{ RunnableCallable } from '@/utils';\nimport { GraphNodeKeys } from '@/common';\n\nexport class ToolNode<\n T extends BaseMessage[] | MessagesState\n> extends RunnableCallable<T, T> {\n tools: t.GenericTool[];\n private toolMap: Map<string, StructuredToolInterface | RunnableToolLike>;\n private loadRuntimeTools?: t.ToolRefGenerator;\n handleToolErrors = true;\n\n constructor({\n tools,\n toolMap,\n name,\n tags,\n handleToolErrors,\n loadRuntimeTools,\n }: t.ToolNodeConstructorParams) {\n super({ name, tags, func: (input, config) => this.run(input, config) });\n this.tools = tools;\n this.toolMap = toolMap ?? new Map(tools.map(tool => [tool.name, tool]));\n this.handleToolErrors = handleToolErrors ?? this.handleToolErrors;\n this.loadRuntimeTools = loadRuntimeTools;\n }\n\n private async run(\n input: BaseMessage[] | MessagesState,\n config: RunnableConfig\n ): Promise<BaseMessage[] | MessagesState> {\n const message = Array.isArray(input)\n ? input[input.length - 1]\n : input.messages[input.messages.length - 1];\n\n if (message._getType() !== 'ai') {\n throw new Error('ToolNode only accepts AIMessages as input.');\n }\n\n if (this.loadRuntimeTools) {\n const { tools, toolMap } = this.loadRuntimeTools(\n (message as AIMessage).tool_calls ?? []\n );\n this.tools = tools;\n this.toolMap = toolMap ?? new Map(tools.map(tool => [tool.name, tool]));\n }\n\n const outputs = await Promise.all(\n (message as AIMessage).tool_calls?.map(async (call) => {\n const tool = this.toolMap.get(call.name);\n try {\n if (tool === undefined) {\n throw new Error(`Tool \"${call.name}\" not found.`);\n }\n const output = await tool.invoke(\n { ...call, type: 'tool_call' },\n config\n );\n if (isBaseMessage(output) && output._getType() === 'tool') {\n return output;\n } else {\n return new ToolMessage({\n name: tool.name,\n content:\n typeof output === 'string' ? output : JSON.stringify(output),\n tool_call_id: call.id!,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (!this.handleToolErrors) {\n throw e;\n }\n return new ToolMessage({\n content: `Error: ${e.message}\\n Please fix your mistakes.`,\n name: call.name,\n tool_call_id: call.id ?? '',\n });\n }\n }) ?? []\n );\n\n return Array.isArray(input) ? outputs : { messages: outputs };\n }\n}\n\nexport function toolsCondition(\n state: BaseMessage[] | MessagesState\n): GraphNodeKeys.TOOLS | typeof END {\n const message = Array.isArray(state)\n ? state[state.length - 1]\n : state.messages[state.messages.length - 1];\n\n if (\n 'tool_calls' in message &&\n ((message as AIMessage).tool_calls?.length ?? 0) > 0\n ) {\n return GraphNodeKeys.TOOLS;\n } else {\n return END;\n }\n}"],"names":["RunnableCallable","isBaseMessage","ToolMessage","GraphNodeKeys","END"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ const resetIfNotEmpty = (value, resetValue) => {
4
+ if (Array.isArray(value)) {
5
+ return value.length > 0 ? resetValue : value;
6
+ }
7
+ if (value instanceof Set || value instanceof Map) {
8
+ return value.size > 0 ? resetValue : value;
9
+ }
10
+ return value !== undefined ? resetValue : value;
11
+ };
12
+ const joinKeys = (args) => args.join('_');
13
+
14
+ exports.joinKeys = joinKeys;
15
+ exports.resetIfNotEmpty = resetIfNotEmpty;
16
+ //# sourceMappingURL=graph.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.cjs","sources":["../../../src/utils/graph.ts"],"sourcesContent":["export const resetIfNotEmpty = <T>(value: T, resetValue: T): T => {\n if (Array.isArray(value)) {\n return value.length > 0 ? resetValue : value;\n }\n if (value instanceof Set || value instanceof Map) {\n return value.size > 0 ? resetValue : value;\n }\n return value !== undefined ? resetValue : value;\n};\n\nexport const joinKeys = (args: (string | number | undefined)[]): string => args.join('_');"],"names":[],"mappings":";;MAAa,eAAe,GAAG,CAAI,KAAQ,EAAE,UAAa,KAAO;AAC/D,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC;KAC9C;IACD,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE;AAChD,QAAA,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC;KAC5C;IACD,OAAO,KAAK,KAAK,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAClD,EAAE;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAqC,KAAa,IAAI,CAAC,IAAI,CAAC,GAAG;;;;;"}
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var runnables = require('@langchain/core/runnables');
4
+ var singletons = require('@langchain/core/singletons');
5
+
6
+ class RunnableCallable extends runnables.Runnable {
7
+ lc_namespace = ['langgraph'];
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ func;
10
+ tags;
11
+ config;
12
+ trace = true;
13
+ recurse = true;
14
+ constructor(fields) {
15
+ super();
16
+ this.name = fields.name ?? fields.func.name;
17
+ this.func = fields.func;
18
+ this.config = fields.tags ? { tags: fields.tags } : undefined;
19
+ this.trace = fields.trace ?? this.trace;
20
+ this.recurse = fields.recurse ?? this.recurse;
21
+ }
22
+ async _tracedInvoke(input, config, runManager) {
23
+ return new Promise((resolve, reject) => {
24
+ const childConfig = runnables.patchConfig(config, {
25
+ callbacks: runManager?.getChild(),
26
+ });
27
+ void singletons.AsyncLocalStorageProviderSingleton.runWithConfig(childConfig, async () => {
28
+ try {
29
+ const output = await this.func(input, childConfig);
30
+ resolve(output);
31
+ }
32
+ catch (e) {
33
+ reject(e);
34
+ }
35
+ });
36
+ });
37
+ }
38
+ async invoke(
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ input, options
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ ) {
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ let returnValue;
45
+ if (this.trace) {
46
+ returnValue = await this._callWithConfig(this._tracedInvoke, input, runnables.mergeConfigs(this.config, options));
47
+ }
48
+ else {
49
+ returnValue = await this.func(input, runnables.mergeConfigs(this.config, options));
50
+ }
51
+ if (runnables.Runnable.isRunnable(returnValue) && this.recurse) {
52
+ return await returnValue.invoke(input, options);
53
+ }
54
+ return returnValue;
55
+ }
56
+ }
57
+
58
+ exports.RunnableCallable = RunnableCallable;
59
+ //# sourceMappingURL=run.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.cjs","sources":["../../../src/utils/run.ts"],"sourcesContent":["import { CallbackManagerForChainRun } from '@langchain/core/callbacks/manager';\nimport {\n mergeConfigs,\n patchConfig,\n Runnable,\n RunnableConfig,\n} from '@langchain/core/runnables';\nimport { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface RunnableCallableArgs extends Partial<any> {\n name?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n func: (...args: any[]) => any;\n tags?: string[];\n trace?: boolean;\n recurse?: boolean;\n}\n\nexport class RunnableCallable<I = unknown, O = unknown> extends Runnable<I, O> {\n lc_namespace: string[] = ['langgraph'];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n func: (...args: any[]) => any;\n\n tags?: string[];\n\n config?: RunnableConfig;\n\n trace: boolean = true;\n\n recurse: boolean = true;\n\n constructor(fields: RunnableCallableArgs) {\n super();\n this.name = fields.name ?? fields.func.name;\n this.func = fields.func;\n this.config = fields.tags ? { tags: fields.tags } : undefined;\n this.trace = fields.trace ?? this.trace;\n this.recurse = fields.recurse ?? this.recurse;\n }\n\n protected async _tracedInvoke(\n input: I,\n config?: Partial<RunnableConfig>,\n runManager?: CallbackManagerForChainRun\n ): Promise<O> {\n return new Promise<O>((resolve, reject) => {\n const childConfig = patchConfig(config, {\n callbacks: runManager?.getChild(),\n });\n void AsyncLocalStorageProviderSingleton.runWithConfig(\n childConfig,\n async () => {\n try {\n const output = await this.func(input, childConfig);\n resolve(output);\n } catch (e) {\n reject(e);\n }\n }\n );\n });\n }\n\n async invoke(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: any,\n options?: Partial<RunnableConfig> | undefined\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise<any> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let returnValue: any;\n\n if (this.trace) {\n returnValue = await this._callWithConfig(\n this._tracedInvoke,\n input,\n mergeConfigs(this.config, options)\n );\n } else {\n returnValue = await this.func(input, mergeConfigs(this.config, options));\n }\n\n if (Runnable.isRunnable(returnValue) && this.recurse) {\n return await returnValue.invoke(input, options);\n }\n\n return returnValue;\n }\n}"],"names":["Runnable","patchConfig","AsyncLocalStorageProviderSingleton","mergeConfigs"],"mappings":";;;;;AAmBM,MAAO,gBAA2C,SAAQA,kBAAc,CAAA;AAC5E,IAAA,YAAY,GAAa,CAAC,WAAW,CAAC,CAAC;;AAGvC,IAAA,IAAI,CAA0B;AAE9B,IAAA,IAAI,CAAY;AAEhB,IAAA,MAAM,CAAkB;IAExB,KAAK,GAAY,IAAI,CAAC;IAEtB,OAAO,GAAY,IAAI,CAAC;AAExB,IAAA,WAAA,CAAY,MAA4B,EAAA;AACtC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;KAC/C;AAES,IAAA,MAAM,aAAa,CAC3B,KAAQ,EACR,MAAgC,EAChC,UAAuC,EAAA;QAEvC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;AACxC,YAAA,MAAM,WAAW,GAAGC,qBAAW,CAAC,MAAM,EAAE;AACtC,gBAAA,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;AAClC,aAAA,CAAC,CAAC;YACH,KAAKC,6CAAkC,CAAC,aAAa,CACnD,WAAW,EACX,YAAW;AACT,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACnD,OAAO,CAAC,MAAM,CAAC,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,CAAC;iBACX;AACH,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,MAAM;;AAEV,IAAA,KAAU,EACV,OAA6C;;;;AAI7C,QAAA,IAAI,WAAgB,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CACtC,IAAI,CAAC,aAAa,EAClB,KAAK,EACLC,sBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CACnC,CAAC;SACH;aAAM;AACL,YAAA,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAEA,sBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1E;QAED,IAAIH,kBAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACpD,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACjD;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;AACF;;;;"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Enum representing the various event types emitted during the execution of runnables.
3
+ * These events provide real-time information about the progress and state of different components.
4
+ *
5
+ * @enum {string}
6
+ */
7
+ var GraphEvents;
8
+ (function (GraphEvents) {
9
+ /* Custom Events */
10
+ /** [Custom] Delta event for run steps (message creation and tool calls) */
11
+ GraphEvents["ON_RUN_STEP"] = "on_run_step";
12
+ /** [Custom] Delta event for run steps (tool calls) */
13
+ GraphEvents["ON_RUN_STEP_DELTA"] = "on_run_step_delta";
14
+ /** [Custom] Completed event for run steps (tool calls) */
15
+ GraphEvents["ON_RUN_STEP_COMPLETED"] = "on_run_step_completed";
16
+ /** [Custom] Delta events for messages */
17
+ GraphEvents["ON_MESSAGE_DELTA"] = "on_message_delta";
18
+ /* Official Events */
19
+ /** Custom event, emitted by system */
20
+ GraphEvents["ON_CUSTOM_EVENT"] = "on_custom_event";
21
+ /** Emitted when a chat model starts processing. */
22
+ GraphEvents["CHAT_MODEL_START"] = "on_chat_model_start";
23
+ /** Emitted when a chat model streams a chunk of its response. */
24
+ GraphEvents["CHAT_MODEL_STREAM"] = "on_chat_model_stream";
25
+ /** Emitted when a chat model completes its processing. */
26
+ GraphEvents["CHAT_MODEL_END"] = "on_chat_model_end";
27
+ /** Emitted when a language model starts processing. */
28
+ GraphEvents["LLM_START"] = "on_llm_start";
29
+ /** Emitted when a language model streams a chunk of its response. */
30
+ GraphEvents["LLM_STREAM"] = "on_llm_stream";
31
+ /** Emitted when a language model completes its processing. */
32
+ GraphEvents["LLM_END"] = "on_llm_end";
33
+ /** Emitted when a chain starts processing. */
34
+ GraphEvents["CHAIN_START"] = "on_chain_start";
35
+ /** Emitted when a chain streams a chunk of its output. */
36
+ GraphEvents["CHAIN_STREAM"] = "on_chain_stream";
37
+ /** Emitted when a chain completes its processing. */
38
+ GraphEvents["CHAIN_END"] = "on_chain_end";
39
+ /** Emitted when a tool starts its operation. */
40
+ GraphEvents["TOOL_START"] = "on_tool_start";
41
+ /** Emitted when a tool completes its operation. */
42
+ GraphEvents["TOOL_END"] = "on_tool_end";
43
+ /** Emitted when a retriever starts its operation. */
44
+ GraphEvents["RETRIEVER_START"] = "on_retriever_start";
45
+ /** Emitted when a retriever completes its operation. */
46
+ GraphEvents["RETRIEVER_END"] = "on_retriever_end";
47
+ /** Emitted when a prompt starts processing. */
48
+ GraphEvents["PROMPT_START"] = "on_prompt_start";
49
+ /** Emitted when a prompt completes its processing. */
50
+ GraphEvents["PROMPT_END"] = "on_prompt_end";
51
+ })(GraphEvents || (GraphEvents = {}));
52
+ var Providers;
53
+ (function (Providers) {
54
+ Providers["OPENAI"] = "openAI";
55
+ Providers["BEDROCK"] = "bedrock";
56
+ Providers["VERTEXAI"] = "vertexai";
57
+ Providers["AWS"] = "aws";
58
+ Providers["ANTHROPIC"] = "anthropic";
59
+ Providers["MISTRALAI"] = "mistralai";
60
+ })(Providers || (Providers = {}));
61
+ var GraphNodeKeys;
62
+ (function (GraphNodeKeys) {
63
+ GraphNodeKeys["TOOLS"] = "tools";
64
+ GraphNodeKeys["AGENT"] = "agent";
65
+ GraphNodeKeys["PRE_TOOLS"] = "pre_tools";
66
+ GraphNodeKeys["POST_TOOLS"] = "post_tools";
67
+ })(GraphNodeKeys || (GraphNodeKeys = {}));
68
+ var GraphNodeActions;
69
+ (function (GraphNodeActions) {
70
+ GraphNodeActions["TOOL_NODE"] = "tool_node";
71
+ GraphNodeActions["CALL_MODEL"] = "call_model";
72
+ GraphNodeActions["ROUTE_MESSAGE"] = "route_message";
73
+ })(GraphNodeActions || (GraphNodeActions = {}));
74
+ var CommonEvents;
75
+ (function (CommonEvents) {
76
+ CommonEvents["LANGGRAPH"] = "LangGraph";
77
+ })(CommonEvents || (CommonEvents = {}));
78
+ var StepTypes;
79
+ (function (StepTypes) {
80
+ StepTypes["TOOL_CALLS"] = "tool_calls";
81
+ StepTypes["MESSAGE_CREATION"] = "message_creation";
82
+ })(StepTypes || (StepTypes = {}));
83
+ var Callback;
84
+ (function (Callback) {
85
+ Callback["TOOL_ERROR"] = "handleToolError";
86
+ Callback["TOOL_START"] = "handleToolStart";
87
+ Callback["TOOL_END"] = "handleToolEnd";
88
+ /*
89
+ LLM_START = 'handleLLMStart',
90
+ LLM_NEW_TOKEN = 'handleLLMNewToken',
91
+ LLM_ERROR = 'handleLLMError',
92
+ LLM_END = 'handleLLMEnd',
93
+ CHAT_MODEL_START = 'handleChatModelStart',
94
+ CHAIN_START = 'handleChainStart',
95
+ CHAIN_ERROR = 'handleChainError',
96
+ CHAIN_END = 'handleChainEnd',
97
+ TEXT = 'handleText',
98
+ AGENT_ACTION = 'handleAgentAction',
99
+ AGENT_END = 'handleAgentEnd',
100
+ RETRIEVER_START = 'handleRetrieverStart',
101
+ RETRIEVER_END = 'handleRetrieverEnd',
102
+ RETRIEVER_ERROR = 'handleRetrieverError',
103
+ CUSTOM_EVENT = 'handleCustomEvent'
104
+ */
105
+ })(Callback || (Callback = {}));
106
+
107
+ export { Callback, CommonEvents, GraphEvents, GraphNodeActions, GraphNodeKeys, Providers, StepTypes };
108
+ //# sourceMappingURL=enum.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.mjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end'\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n BEDROCK = 'bedrock',\n VERTEXAI = 'vertexai',\n AWS = 'aws',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools',\n AGENT = 'agent',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation'\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n CUSTOM_EVENT = 'handleCustomEvent'\n */\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ class HandlerRegistry {
2
+ handlers = new Map();
3
+ register(eventType, handler) {
4
+ this.handlers.set(eventType, handler);
5
+ }
6
+ getHandler(eventType) {
7
+ return this.handlers.get(eventType);
8
+ }
9
+ }
10
+ class ModelEndHandler {
11
+ handle(event, data, metadata, graph) {
12
+ if (!graph || !metadata) {
13
+ console.warn(`Graph or metadata not found in ${event} event`);
14
+ return;
15
+ }
16
+ // const messageType = (data?.output as BaseMessage | undefined)?._getType();
17
+ // console.log('messageType', messageType);
18
+ const usage = data?.output?.usage_metadata;
19
+ // const stepKey = graph.getStepKey(metadata);
20
+ // const stepId = graph.getStepIdByKey(stepKey);
21
+ // const step = graph.getRunStep(stepId);
22
+ console.log(`====== ${event.toUpperCase()} ======`);
23
+ console.dir({
24
+ usage,
25
+ }, { depth: null });
26
+ }
27
+ }
28
+ class ToolEndHandler {
29
+ handle(event, data, metadata, graph) {
30
+ if (!graph || !metadata) {
31
+ console.warn(`Graph or metadata not found in ${event} event`);
32
+ return;
33
+ }
34
+ if (!data?.output) {
35
+ console.warn('No output found in tool_end event');
36
+ return;
37
+ }
38
+ graph.handleToolCallCompleted({ input: data.input, output: data.output });
39
+ }
40
+ }
41
+ class TestLLMStreamHandler {
42
+ handle(event, data) {
43
+ const chunk = data?.chunk;
44
+ const isMessageChunk = !!(chunk && 'message' in chunk);
45
+ const msg = isMessageChunk && chunk?.message;
46
+ if (msg && msg.tool_call_chunks && msg.tool_call_chunks.length > 0) {
47
+ console.log(msg.tool_call_chunks);
48
+ }
49
+ else if (msg && msg.content) {
50
+ if (typeof msg.content === 'string') {
51
+ process.stdout.write(msg.content);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ class TestChatStreamHandler {
57
+ handle(event, data) {
58
+ const chunk = data?.chunk;
59
+ const isContentChunk = !!(chunk && 'content' in chunk);
60
+ const content = isContentChunk && chunk?.content;
61
+ if (!content || !isContentChunk) {
62
+ return;
63
+ }
64
+ if (chunk.tool_call_chunks && chunk.tool_call_chunks.length > 0) {
65
+ console.dir(chunk.tool_call_chunks, { depth: null });
66
+ }
67
+ if (typeof content === 'string') {
68
+ process.stdout.write(content);
69
+ }
70
+ else {
71
+ console.dir(content, { depth: null });
72
+ }
73
+ }
74
+ }
75
+ class LLMStreamHandler {
76
+ handle(event, data, metadata) {
77
+ const chunk = data?.chunk;
78
+ const isMessageChunk = !!(chunk && 'message' in chunk);
79
+ const msg = isMessageChunk && chunk?.message;
80
+ if (metadata) {
81
+ console.log(metadata);
82
+ }
83
+ if (msg && msg.tool_call_chunks && msg.tool_call_chunks.length > 0) {
84
+ console.log(msg.tool_call_chunks);
85
+ }
86
+ else if (msg && msg.content) {
87
+ if (typeof msg.content === 'string') {
88
+ // const text_delta = msg.content;
89
+ // dispatchCustomEvent(GraphEvents.CHAT_MODEL_STREAM, { chunk }, config);
90
+ process.stdout.write(msg.content);
91
+ }
92
+ }
93
+ }
94
+ }
95
+
96
+ export { HandlerRegistry, LLMStreamHandler, ModelEndHandler, TestChatStreamHandler, TestLLMStreamHandler, ToolEndHandler };
97
+ //# sourceMappingURL=events.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.mjs","sources":["../../src/events.ts"],"sourcesContent":["/* eslint-disable no-console */\n// src/events.ts\nimport type { AIMessage } from '@langchain/core/messages';\nimport type { Graph } from '@/graphs';\nimport type * as t from '@/types';\n\nexport class HandlerRegistry {\n private handlers: Map<string, t.EventHandler> = new Map();\n\n register(eventType: string, handler: t.EventHandler): void {\n this.handlers.set(eventType, handler);\n }\n\n getHandler(eventType: string): t.EventHandler | undefined {\n return this.handlers.get(eventType);\n }\n}\n\nexport class ModelEndHandler implements t.EventHandler {\n handle(event: string, data: t.StreamEventData, metadata?: Record<string, unknown>, graph?: Graph): void {\n if (!graph || !metadata) {\n console.warn(`Graph or metadata not found in ${event} event`);\n return;\n }\n\n // const messageType = (data?.output as BaseMessage | undefined)?._getType();\n // console.log('messageType', messageType);\n const usage = (data?.output as AIMessage)?.usage_metadata;\n\n // const stepKey = graph.getStepKey(metadata);\n // const stepId = graph.getStepIdByKey(stepKey);\n // const step = graph.getRunStep(stepId);\n\n console.log(`====== ${event.toUpperCase()} ======`);\n console.dir({\n usage,\n }, { depth: null });\n }\n}\n\nexport class ToolEndHandler implements t.EventHandler {\n handle(event: string, data: t.StreamEventData, metadata?: Record<string, unknown>, graph?: Graph): void {\n if (!graph || !metadata) {\n console.warn(`Graph or metadata not found in ${event} event`);\n return;\n }\n\n if (!data?.output) {\n console.warn('No output found in tool_end event');\n return;\n }\n\n graph.handleToolCallCompleted({ input: data.input, output: data.output } as t.ToolEndData);\n }\n}\n\nexport class TestLLMStreamHandler implements t.EventHandler {\n handle(event: string, data: t.StreamEventData): void {\n const chunk = data?.chunk;\n const isMessageChunk = !!(chunk && 'message' in chunk);\n const msg = isMessageChunk && chunk?.message;\n if (msg && msg.tool_call_chunks && msg.tool_call_chunks.length > 0) {\n console.log(msg.tool_call_chunks);\n } else if (msg && msg.content) {\n if (typeof msg.content === 'string') {\n process.stdout.write(msg.content);\n }\n }\n }\n}\n\nexport class TestChatStreamHandler implements t.EventHandler {\n handle(event: string, data: t.StreamEventData): void {\n const chunk = data?.chunk;\n const isContentChunk = !!(chunk && 'content' in chunk);\n const content = isContentChunk && chunk?.content;\n\n if (!content || !isContentChunk) {\n return;\n }\n\n if (chunk.tool_call_chunks && chunk.tool_call_chunks.length > 0) {\n console.dir(chunk.tool_call_chunks, { depth: null });\n }\n\n if (typeof content === 'string') {\n process.stdout.write(content);\n } else {\n console.dir(content, { depth: null });\n }\n }\n}\n\nexport class LLMStreamHandler implements t.EventHandler {\n handle(event: string, data: t.StreamEventData, metadata?: Record<string, unknown>): void {\n const chunk = data?.chunk;\n const isMessageChunk = !!(chunk && 'message' in chunk);\n const msg = isMessageChunk && chunk?.message;\n if (metadata) { console.log(metadata); }\n if (msg && msg.tool_call_chunks && msg.tool_call_chunks.length > 0) {\n console.log(msg.tool_call_chunks);\n } else if (msg && msg.content) {\n if (typeof msg.content === 'string') {\n // const text_delta = msg.content;\n // dispatchCustomEvent(GraphEvents.CHAT_MODEL_STREAM, { chunk }, config);\n process.stdout.write(msg.content);\n }\n }\n }\n}"],"names":[],"mappings":"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"}