@minded-ai/mindedjs 1.0.20 → 1.0.22

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 (69) hide show
  1. package/dist/agent.d.ts +9 -11
  2. package/dist/agent.js +76 -53
  3. package/dist/agent.js.map +1 -1
  4. package/dist/checkpointer/checkpointSaverFactory.d.ts +7 -0
  5. package/dist/checkpointer/checkpointSaverFactory.js +30 -0
  6. package/dist/checkpointer/checkpointSaverFactory.js.map +1 -0
  7. package/dist/cli/index.d.ts +2 -0
  8. package/dist/cli/index.js +65 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/edges/createDirectEdge.d.ts +4 -5
  11. package/dist/edges/createDirectEdge.js +5 -6
  12. package/dist/edges/createDirectEdge.js.map +1 -1
  13. package/dist/edges/createLogicalRouter.d.ts +4 -6
  14. package/dist/edges/createLogicalRouter.js +4 -6
  15. package/dist/edges/createLogicalRouter.js.map +1 -1
  16. package/dist/edges/createPromptRouter.d.ts +5 -5
  17. package/dist/edges/createPromptRouter.js +8 -10
  18. package/dist/edges/createPromptRouter.js.map +1 -1
  19. package/dist/edges/edgeFactory.d.ts +6 -5
  20. package/dist/edges/edgeFactory.js +55 -19
  21. package/dist/edges/edgeFactory.js.map +1 -1
  22. package/dist/events/AgentEvents.d.ts +2 -3
  23. package/dist/events/AgentEvents.js.map +1 -1
  24. package/dist/events/index.d.ts +1 -1
  25. package/dist/index.d.ts +3 -3
  26. package/dist/index.js.map +1 -1
  27. package/dist/llm/createLlmInstance.js +3 -0
  28. package/dist/llm/createLlmInstance.js.map +1 -1
  29. package/dist/nodes/addHumanInTheLoopNode.d.ts +8 -0
  30. package/dist/nodes/addHumanInTheLoopNode.js +17 -0
  31. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -0
  32. package/dist/nodes/addPromptNode.d.ts +11 -11
  33. package/dist/nodes/addPromptNode.js +6 -26
  34. package/dist/nodes/addPromptNode.js.map +1 -1
  35. package/dist/nodes/addToolNode.d.ts +3 -3
  36. package/dist/nodes/addToolNode.js +16 -8
  37. package/dist/nodes/addToolNode.js.map +1 -1
  38. package/dist/nodes/addTriggerNode.d.ts +4 -7
  39. package/dist/nodes/addTriggerNode.js +3 -37
  40. package/dist/nodes/addTriggerNode.js.map +1 -1
  41. package/dist/nodes/nodeFactory.d.ts +10 -10
  42. package/dist/nodes/nodeFactory.js +3 -3
  43. package/dist/nodes/nodeFactory.js.map +1 -1
  44. package/dist/platform/analytics.js +2 -2
  45. package/dist/platform/analytics.js.map +1 -1
  46. package/dist/platform/mindedCheckpointSaver.d.ts +2 -2
  47. package/dist/platform/mindedCheckpointSaver.js +59 -14
  48. package/dist/platform/mindedCheckpointSaver.js.map +1 -1
  49. package/dist/platform/mindedConnection.d.ts +6 -2
  50. package/dist/platform/mindedConnection.js +93 -57
  51. package/dist/platform/mindedConnection.js.map +1 -1
  52. package/dist/platform/mindedConnectionTypes.d.ts +6 -1
  53. package/dist/platform/mindedConnectionTypes.js +0 -1
  54. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  55. package/dist/platform/mindedRequest.d.ts +1 -1
  56. package/dist/platform/mindedRequest.js +4 -4
  57. package/dist/platform/mindedRequest.js.map +1 -1
  58. package/dist/types/Agent.types.d.ts +6 -0
  59. package/dist/types/Flows.types.d.ts +21 -20
  60. package/dist/types/Flows.types.js.map +1 -1
  61. package/dist/types/LLM.types.d.ts +3 -11
  62. package/dist/types/LLM.types.js +3 -8
  63. package/dist/types/LLM.types.js.map +1 -1
  64. package/dist/types/LangGraph.types.d.ts +7 -8
  65. package/dist/types/LangGraph.types.js +1 -1
  66. package/dist/types/LangGraph.types.js.map +1 -1
  67. package/dist/types/Tools.types.d.ts +2 -1
  68. package/package.json +4 -1
  69. package/src/cli/index.ts +36 -0
package/dist/agent.d.ts CHANGED
@@ -1,16 +1,14 @@
1
- import { Tool } from "./types/Tools.types";
2
- import { BaseLanguageModel } from "@langchain/core/language_models/base";
3
- import { MemorySaver } from "@langchain/langgraph";
4
- import { TriggerBody } from "./types/Triggers.types";
5
- import { AgentEventRequestPayloads, AgentEventResponsePayloads } from "./events/AgentEvents";
6
- import { z } from "zod";
1
+ import { Tool } from './types/Tools.types';
2
+ import { BaseCheckpointSaver } from '@langchain/langgraph';
3
+ import { AgentEventRequestPayloads, AgentEventResponsePayloads } from './events/AgentEvents';
4
+ import { z } from 'zod';
5
+ import { MindedSDKConfig } from './types/Agent.types';
7
6
  type CreateAgentParams<Memory> = {
8
7
  memorySchema: z.ZodSchema;
9
- flows: string;
8
+ config: MindedSDKConfig;
10
9
  tools: Tool<any, Memory>[];
11
- llm: BaseLanguageModel;
12
10
  platformToken?: string;
13
- memorySaver?: MemorySaver;
11
+ memorySaver?: BaseCheckpointSaver;
14
12
  };
15
13
  export declare class Agent {
16
14
  private memorySchema;
@@ -27,8 +25,8 @@ export declare class Agent {
27
25
  private validate;
28
26
  private initializeGraph;
29
27
  private init;
30
- invoke({ triggerBody, triggerName, sessionId, }: {
31
- triggerBody: TriggerBody;
28
+ invoke({ triggerBody, triggerName, sessionId }: {
29
+ triggerBody: any;
32
30
  triggerName: string;
33
31
  sessionId?: string;
34
32
  }): Promise<import("@langchain/langgraph").StateType<import("@langchain/langgraph").StateDefinition>>;
package/dist/agent.js CHANGED
@@ -37,77 +37,93 @@ exports.Agent = void 0;
37
37
  const Flows_types_1 = require("./types/Flows.types");
38
38
  const uuid_1 = require("uuid");
39
39
  const langgraph_1 = require("@langchain/langgraph");
40
- const langgraph_2 = require("@langchain/langgraph");
41
40
  const nodeFactory_1 = require("./nodes/nodeFactory");
42
41
  const LangGraph_types_1 = require("./types/LangGraph.types");
43
42
  const edgeFactory_1 = require("./edges/edgeFactory");
43
+ const AgentEvents_1 = require("./events/AgentEvents");
44
44
  const mindedConnection_1 = require("./platform/mindedConnection");
45
45
  const mindedConnectionTypes_1 = require("./platform/mindedConnectionTypes");
46
46
  const fs = __importStar(require("fs"));
47
47
  const path = __importStar(require("path"));
48
48
  const yaml = __importStar(require("js-yaml"));
49
+ const createLlmInstance_1 = require("./llm/createLlmInstance");
50
+ const dotenv_1 = require("dotenv");
51
+ const path_1 = require("path");
52
+ const checkpointSaverFactory_1 = require("./checkpointer/checkpointSaverFactory");
53
+ (0, dotenv_1.config)({ path: (0, path_1.resolve)(__dirname, '../.env') });
49
54
  class Agent {
50
55
  constructor(params) {
56
+ this.mindedConnection = null;
51
57
  // Event handlers storage keyed by event name. Handlers can optionally return a value.
52
58
  this.eventHandlers = {};
53
- const { flows: flowsDirectory, tools, platformToken, llm, memorySaver, memorySchema, } = params;
59
+ const { config, tools, platformToken, memorySaver, memorySchema } = params;
54
60
  this.memorySchema = memorySchema;
55
- this.flows = this.loadFlowsFromDirectory(flowsDirectory);
61
+ this.flows = this.loadFlowsFromDirectory(config.flows);
56
62
  this.tools = tools;
57
63
  this.platformToken = platformToken;
58
- this.llm = llm;
59
- this.checkpointer = memorySaver || new langgraph_2.MemorySaver();
64
+ this.llm = (0, createLlmInstance_1.createLlmInstance)(config.llm);
65
+ this.checkpointer = memorySaver || (0, checkpointSaverFactory_1.createCheckpointSaver)('');
60
66
  this.validate();
61
67
  this.compiledGraph = this.initializeGraph();
62
- this.mindedConnection = new mindedConnection_1.MindedConnection();
63
- this.mindedConnection.start();
64
- this.mindedConnection.on(mindedConnectionTypes_1.MindedConnectionSocketMessageType.OnAppTrigger, (trigger) => {
65
- console.log('Received trigger:', trigger);
66
- });
67
- }
68
- loadFlowsFromDirectory(flowsDirectory) {
69
- if (!fs.existsSync(flowsDirectory)) {
70
- throw new Error(`Flows directory does not exist: ${flowsDirectory}`);
68
+ if (process.env.NODE_ENV !== 'test' && process.env.NO_PLATFORM_CONNECT !== 'true') {
69
+ this.mindedConnection = new mindedConnection_1.MindedConnection();
70
+ this.mindedConnection.start();
71
+ this.mindedConnection.on(mindedConnectionTypes_1.MindedConnectionSocketMessageType.OnAppTrigger, async (message) => {
72
+ const trigger = message;
73
+ await this.invoke({
74
+ triggerBody: trigger.body,
75
+ triggerName: trigger.name,
76
+ sessionId: trigger.cnvId,
77
+ });
78
+ });
71
79
  }
80
+ }
81
+ loadFlowsFromDirectory(flowsDirectories) {
72
82
  const flows = [];
73
- const files = fs.readdirSync(flowsDirectory);
74
- for (const file of files) {
75
- if (file.endsWith(".yaml") || file.endsWith(".yml")) {
76
- const filePath = path.join(flowsDirectory, file);
77
- try {
78
- const fileContent = fs.readFileSync(filePath, "utf8");
79
- const parsedFlow = yaml.load(fileContent);
80
- // Validate that the parsed flow has the required structure
81
- if (!parsedFlow.name || !parsedFlow.nodes || !parsedFlow.edges) {
82
- throw new Error(`Invalid flow structure in ${file}. Flow must have name, nodes, and edges.`);
83
+ for (const flowsDirectory of flowsDirectories) {
84
+ if (!fs.existsSync(flowsDirectory)) {
85
+ throw new Error(`Flows directory does not exist: ${flowsDirectory}`);
86
+ }
87
+ const files = fs.readdirSync(flowsDirectory);
88
+ for (const file of files) {
89
+ if (file.endsWith('.yaml') || file.endsWith('.yml')) {
90
+ const filePath = path.join(flowsDirectory, file);
91
+ try {
92
+ const fileContent = fs.readFileSync(filePath, 'utf8');
93
+ const parsedFlow = yaml.load(fileContent);
94
+ // Validate that the parsed flow has the required structure
95
+ if (!parsedFlow.name || !parsedFlow.nodes || !parsedFlow.edges) {
96
+ throw new Error(`Invalid flow structure in ${file}. Flow must have name, nodes, and edges.`);
97
+ }
98
+ flows.push(parsedFlow);
99
+ }
100
+ catch (error) {
101
+ throw new Error(`Failed to parse flow file ${file}: ${error}`);
83
102
  }
84
- flows.push(parsedFlow);
85
- console.log(`Loaded flow: ${parsedFlow.name} from ${file}`);
86
- }
87
- catch (error) {
88
- throw new Error(`Failed to parse flow file ${file}: ${error}`);
89
103
  }
90
104
  }
91
- }
92
- if (flows.length === 0) {
93
- throw new Error(`No YAML flow files found in directory: ${flowsDirectory}`);
105
+ if (flows.length === 0) {
106
+ throw new Error(`No YAML flow files found in directory: ${flowsDirectory}`);
107
+ }
94
108
  }
95
109
  return flows;
96
110
  }
97
111
  validate() {
98
112
  if (this.flows.length === 0) {
99
- throw new Error("No flows provided");
113
+ throw new Error('No flows provided');
100
114
  }
101
115
  }
102
116
  initializeGraph() {
103
117
  const nodes = this.flows.flatMap((flow) => flow.nodes);
104
118
  const edges = this.flows.flatMap((flow) => flow.edges);
105
119
  // Initialize the graph
106
- const graph = new langgraph_1.StateGraph(LangGraph_types_1.stateAnnotation)
107
- .addNode("init", this.init.bind(this))
108
- .addEdge("__start__", "init");
109
- // Add nodes
120
+ const graph = new langgraph_1.StateGraph(LangGraph_types_1.stateAnnotation).addNode('init', this.init.bind(this)).addEdge('__start__', 'init');
121
+ // Add nodes and create nodes object
122
+ const nodesObject = {};
110
123
  nodes.forEach((node) => {
124
+ // Add to nodes object
125
+ nodesObject[node.name] = node;
126
+ // Add to graph
111
127
  (0, nodeFactory_1.nodeFactory)({
112
128
  graph,
113
129
  node,
@@ -117,17 +133,16 @@ class Agent {
117
133
  });
118
134
  });
119
135
  // Add edges
120
- (0, edgeFactory_1.edgeFactory)({ graph, edges, llm: this.llm });
121
- // Add edges to trigger nodes
136
+ (0, edgeFactory_1.edgeFactory)({ graph, edges, nodes: nodesObject, llm: this.llm });
122
137
  nodes.forEach((node) => {
123
138
  if (node.type === Flows_types_1.NodeType.TRIGGER) {
124
- graph.addEdge("__start__", node.name);
139
+ graph.addEdge('__start__', node.name);
125
140
  }
126
141
  });
127
142
  // Compile the graph
128
143
  return graph.compile({ checkpointer: this.checkpointer });
129
144
  }
130
- init(state) {
145
+ init() {
131
146
  return {
132
147
  messages: [],
133
148
  memory: {},
@@ -135,28 +150,36 @@ class Agent {
135
150
  interruptedNode: null,
136
151
  };
137
152
  }
138
- async invoke({ triggerBody, triggerName, sessionId, }) {
139
- var _a;
153
+ async invoke({ triggerBody, triggerName, sessionId }) {
154
+ var _a, _b, _c, _d;
140
155
  const session = sessionId || (0, uuid_1.v4)();
156
+ const results = await this.emit(AgentEvents_1.AgentEvents.TRIGGER_EVENT, {
157
+ triggerName,
158
+ triggerBody,
159
+ });
160
+ const handlerResult = results.find((r) => r !== undefined);
161
+ if (handlerResult === false) {
162
+ console.log(`Disqualified trigger ${triggerName}`);
163
+ throw new Error('Disqualified trigger');
164
+ }
165
+ const memoryUpdate = (handlerResult === null || handlerResult === void 0 ? void 0 : handlerResult.memory) || {};
166
+ const messages = (_a = handlerResult === null || handlerResult === void 0 ? void 0 : handlerResult.messages) !== null && _a !== void 0 ? _a : [];
141
167
  console.log(`Invoking trigger ${triggerName} with session ${session}`);
142
168
  const config = { configurable: { thread_id: session, recursionLimit: 3 } };
143
- const triggerNode = this.compiledGraph.builder.nodes[triggerName];
144
- if (!triggerNode) {
145
- throw new Error(`Trigger node not found: ${triggerName}`);
146
- }
169
+ // const triggerNode = this.compiledGraph.builder.nodes[triggerName];
170
+ // if (!triggerNode) {
171
+ // throw new Error(`Trigger node not found: ${triggerName}`);
172
+ // }
147
173
  const state = await this.compiledGraph.getState(config);
148
- const triggerMetadata = { name: triggerName, triggerBody };
149
174
  // Resume interruption
150
- if ((_a = state === null || state === void 0 ? void 0 : state.values) === null || _a === void 0 ? void 0 : _a.next) {
175
+ if (((_d = (_c = (_b = state.tasks) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.interrupts) === null || _d === void 0 ? void 0 : _d.length) > 0) {
151
176
  const res = await this.compiledGraph.invoke(new langgraph_1.Command({
152
- resume: true,
153
- goto: triggerName,
154
- update: { triggerMetadata },
177
+ resume: { memory: memoryUpdate, messages },
155
178
  }), config);
156
179
  return res;
157
180
  }
158
181
  else {
159
- const res = await this.compiledGraph.invoke({ triggerMetadata, next: triggerName }, config);
182
+ const res = await this.compiledGraph.invoke({ messages, memory: memoryUpdate }, config);
160
183
  return res;
161
184
  }
162
185
  }
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BaseCheckpointSaver } from '@langchain/langgraph';
2
+ /**
3
+ * Factory function to create the appropriate checkpoint saver based on environment variables
4
+ * @param platformToken - Optional platform token for remote checkpoint saving
5
+ * @returns BaseCheckpointSaver instance (either MemorySaver or MindedCheckpointSaver)
6
+ */
7
+ export declare function createCheckpointSaver(platformToken: string): BaseCheckpointSaver;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCheckpointSaver = createCheckpointSaver;
4
+ const langgraph_1 = require("@langchain/langgraph");
5
+ const mindedCheckpointSaver_1 = require("../platform/mindedCheckpointSaver");
6
+ /**
7
+ * Factory function to create the appropriate checkpoint saver based on environment variables
8
+ * @param platformToken - Optional platform token for remote checkpoint saving
9
+ * @returns BaseCheckpointSaver instance (either MemorySaver or MindedCheckpointSaver)
10
+ */
11
+ function createCheckpointSaver(platformToken) {
12
+ const useRemoteCheckpointSaver = process.env.REMOTE_CHECKPOINT_SAVER === 'true';
13
+ if (!useRemoteCheckpointSaver || process.env.NODE_ENV === 'test') {
14
+ console.log('Using in-memory checkpoint saver');
15
+ return new langgraph_1.MemorySaver();
16
+ }
17
+ // // If not using in-memory, check for platform token and MINDED_SERVER
18
+ // if (!platformToken) {
19
+ // console.warn('No platform token provided, falling back to in-memory checkpoint saver');
20
+ // return new MemorySaver();
21
+ // }
22
+ const mindedServer = process.env.MINDED_SERVER;
23
+ if (!mindedServer) {
24
+ console.warn('MINDED_SERVER environment variable not set, falling back to in-memory checkpoint saver');
25
+ return new langgraph_1.MemorySaver();
26
+ }
27
+ console.log(`Using remote checkpoint saver with server: ${mindedServer}`);
28
+ return new mindedCheckpointSaver_1.MindedCheckpointSaver(platformToken);
29
+ }
30
+ //# sourceMappingURL=checkpointSaverFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointSaverFactory.js","sourceRoot":"","sources":["../../src/checkpointer/checkpointSaverFactory.ts"],"names":[],"mappings":";;AAQA,sDAsBC;AA9BD,oDAAwE;AACxE,6EAA0E;AAE1E;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,aAAqB;IACzD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC;IAEhF,IAAI,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,IAAI,uBAAW,EAAE,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAC1E,0BAA0B;IAC1B,8FAA8F;IAC9F,gCAAgC;IAChC,MAAM;IAEN,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;QACvG,OAAO,IAAI,uBAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;IAC1E,OAAO,IAAI,6CAAqB,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const TOKEN_FILE = '.minded-token';
40
+ function getTokenFilePath() {
41
+ return path.join(process.cwd(), TOKEN_FILE);
42
+ }
43
+ function setToken(token) {
44
+ const tokenPath = getTokenFilePath();
45
+ fs.writeFileSync(tokenPath, token);
46
+ console.log(`Token saved to ${tokenPath}`);
47
+ }
48
+ function main() {
49
+ const args = process.argv.slice(2);
50
+ const command = args[0];
51
+ if (command === 'token') {
52
+ const token = args[1];
53
+ if (!token) {
54
+ console.error('Please provide a token');
55
+ process.exit(1);
56
+ }
57
+ setToken(token);
58
+ }
59
+ else {
60
+ console.error('Unknown command. Available commands: token');
61
+ process.exit(1);
62
+ }
63
+ }
64
+ main();
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAG7B,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,IAAI;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -1,5 +1,4 @@
1
- import { Edge } from "../types/Flows.types";
2
- import { stateAnnotation } from "../types/LangGraph.types";
3
- export declare const createDirectEdge: <Memory>({ edge }: {
4
- edge: Edge<Memory>;
5
- }) => (state: typeof stateAnnotation.State) => Promise<string>;
1
+ import { StepForwardEdge } from '../types/Flows.types';
2
+ export declare const createDirectEdge: ({ edges }: {
3
+ edges: StepForwardEdge[];
4
+ }) => () => Promise<string>;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createDirectEdge = void 0;
4
- const langgraph_1 = require("@langchain/langgraph");
5
- const createDirectEdge = ({ edge }) => {
6
- return async (state) => {
7
- if (state.interruptedNode) {
8
- return langgraph_1.END;
9
- }
4
+ const createDirectEdge = ({ edges }) => {
5
+ return async () => {
6
+ // For direct edges, we just return the target of the first edge
7
+ // since there's no conditional logic needed
8
+ const edge = edges[0];
10
9
  console.log(`Executing edge ${JSON.stringify(edge)}`);
11
10
  return edge.target;
12
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createDirectEdge.js","sourceRoot":"","sources":["../../src/edges/createDirectEdge.ts"],"names":[],"mappings":";;;AAEA,oDAA2C;AACpC,MAAM,gBAAgB,GAAG,CAAS,EAAE,IAAI,EAA0B,EAAE,EAAE;IAC3E,OAAO,KAAK,EAAE,KAAmC,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,eAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC,CAAA;AACH,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B"}
1
+ {"version":3,"file":"createDirectEdge.js","sourceRoot":"","sources":["../../src/edges/createDirectEdge.ts"],"names":[],"mappings":";;;AAEO,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAgC,EAAE,EAAE;IAC1E,OAAO,KAAK,IAAI,EAAE;QAChB,gEAAgE;QAChE,4CAA4C;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B"}
@@ -1,7 +1,5 @@
1
- import { BaseLanguageModel } from "@langchain/core/language_models/base";
2
- import { LogicalConditionEdge } from "../types/Flows.types";
3
- import { stateAnnotation } from "../types/LangGraph.types";
4
- export declare const createLogicalRouter: <Memory>({ edges, llm }: {
5
- edges: LogicalConditionEdge<Memory>[];
6
- llm: BaseLanguageModel;
1
+ import { LogicalConditionEdge } from '../types/Flows.types';
2
+ import { stateAnnotation } from '../types/LangGraph.types';
3
+ export declare const createLogicalRouter: ({ edges }: {
4
+ edges: LogicalConditionEdge[];
7
5
  }) => (state: typeof stateAnnotation.State) => Promise<string>;
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLogicalRouter = void 0;
4
- const langgraph_1 = require("@langchain/langgraph");
5
- const createLogicalRouter = ({ edges, llm }) => {
4
+ const createLogicalRouter = ({ edges }) => {
6
5
  return async (state) => {
7
- if (state.interruptedNode) {
8
- return langgraph_1.END;
9
- }
10
6
  console.log(`Executing logical router. Edges: ${JSON.stringify(edges)}`);
11
7
  for (const edge of edges) {
12
- if (await edge.condition({ memory: state.memory })) {
8
+ const conditionFn = eval(edge.condition);
9
+ const result = await conditionFn({ memory: state.memory });
10
+ if (result) {
13
11
  return edge.target;
14
12
  }
15
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createLogicalRouter.js","sourceRoot":"","sources":["../../src/edges/createLogicalRouter.ts"],"names":[],"mappings":";;;AAEA,oDAA2C;AAGpC,MAAM,mBAAmB,GAAG,CAAS,EAAE,KAAK,EAAE,GAAG,EAAqE,EAAE,EAAE;IAC/H,OAAO,KAAK,EAAE,KAAmC,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,eAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,mBAAmB,uBAa/B"}
1
+ {"version":3,"file":"createLogicalRouter.js","sourceRoot":"","sources":["../../src/edges/createLogicalRouter.ts"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,CAAC,EAAE,KAAK,EAAqC,EAAE,EAAE;IAClF,OAAO,KAAK,EAAE,KAAmC,EAAE,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B"}
@@ -1,7 +1,7 @@
1
- import { PromptConditionEdge } from "../types/Flows.types";
2
- import { BaseLanguageModel } from "@langchain/core/language_models/base";
3
- import { stateAnnotation } from "../types/LangGraph.types";
4
- export declare const createPromptRouter: <Memory>({ edges, llm, }: {
5
- edges: PromptConditionEdge<Memory>[];
1
+ import { PromptConditionEdge } from '../types/Flows.types';
2
+ import { BaseLanguageModel } from '@langchain/core/language_models/base';
3
+ import { stateAnnotation } from '../types/LangGraph.types';
4
+ export declare const createPromptRouter: ({ edges, llm }: {
5
+ edges: PromptConditionEdge[];
6
6
  llm: BaseLanguageModel;
7
7
  }) => (state: typeof stateAnnotation.State) => Promise<string>;
@@ -4,8 +4,7 @@ exports.createPromptRouter = void 0;
4
4
  const prebuilt_1 = require("@langchain/langgraph/prebuilt");
5
5
  const zod_1 = require("zod");
6
6
  const messages_1 = require("@langchain/core/messages");
7
- const langgraph_1 = require("@langchain/langgraph");
8
- const createPromptRouter = ({ edges, llm, }) => {
7
+ const createPromptRouter = ({ edges, llm }) => {
9
8
  const agent = (0, prebuilt_1.createReactAgent)({
10
9
  llm,
11
10
  tools: [],
@@ -15,19 +14,17 @@ const createPromptRouter = ({ edges, llm, }) => {
15
14
  }),
16
15
  });
17
16
  return async (state) => {
18
- if (state.interruptedNode) {
19
- return langgraph_1.END;
20
- }
21
17
  console.log(`Executing prompt router. Edges: ${JSON.stringify(edges)}`);
22
18
  const result = await agent.invoke({
23
19
  messages: [
24
20
  new messages_1.AIMessage({
25
21
  content: `You are a router that decides which node to take in a flow based on the current memory state, history and available node ids.
26
22
 
27
- Your task is to analyze the current memory state, history and available nodes and determine the most appropriate next node in the flow. If none of the available nodes is appropriate, stay on the current node with id ${edges[0].source}
23
+ Your task is to analyze the current memory state, history and available nodes and determine the most appropriate next node in the flow, the returned nodeId should be only the id without the prompt.
24
+
28
25
 
29
- Available nodes:
30
- ${edges.map((edge) => `- ${edge.target}: ${edge.prompt}`).join("\n")}
26
+ Available nodes in the format of {nodeId}: {prompt}:
27
+ ${edges.map((edge) => `- {${edge.target}}: {${edge.prompt}}`).join('\n')}
31
28
 
32
29
  Current memory state:
33
30
  ${JSON.stringify(state.memory)}
@@ -42,13 +39,14 @@ Based on the memory state and available nodes, determine the most appropriate ne
42
39
  });
43
40
  try {
44
41
  const nextNode = result.structuredResponse.nextNodeId;
42
+ console.log(`Next node: ${nextNode}`);
45
43
  if (!nextNode) {
46
- throw new Error("No next node id returned from router");
44
+ throw new Error('No next node id returned from router');
47
45
  }
48
46
  return nextNode;
49
47
  }
50
48
  catch (e) {
51
- throw new Error(`Failed to parse router response: ${result.structuredResponse}`);
49
+ throw new Error(`Failed to parse router response: ${result.structuredResponse}; Error: ${e.message}`);
52
50
  }
53
51
  };
54
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createPromptRouter.js","sourceRoot":"","sources":["../../src/edges/createPromptRouter.ts"],"names":[],"mappings":";;;AAAA,4DAAiE;AACjE,6BAAwB;AAGxB,uDAAkE;AAClE,oDAA2C;AAGpC,MAAM,kBAAkB,GAAG,CAAS,EACzC,KAAK,EACL,GAAG,GAIJ,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC;QAC7B,GAAG;QACH,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,OAAC,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;SACtB,CAAC;KACH,CAAC,CAAC;IACH,OAAO,KAAK,EAAE,KAAmC,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,eAAG,CAAC;QACb,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE;gBACR,IAAI,oBAAS,CAAC;oBACZ,OAAO,EAAE;;0NAGP,KAAK,CAAC,CAAC,CAAC,CAAC,MACX;;;EAGR,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGlE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;;;EAG5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;;;OAGzB;iBACE,CAAC;aACH;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,CAAC,kBAAkB,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAvDW,QAAA,kBAAkB,sBAuD7B"}
1
+ {"version":3,"file":"createPromptRouter.js","sourceRoot":"","sources":["../../src/edges/createPromptRouter.ts"],"names":[],"mappings":";;;AAAA,4DAAiE;AACjE,6BAAwB;AAGxB,uDAAqD;AAG9C,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAA4D,EAAE,EAAE;IAC7G,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC;QAC7B,GAAG;QACH,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,OAAC,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;YACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;SACtB,CAAC;KACH,CAAC,CAAC;IACH,OAAO,KAAK,EAAE,KAAmC,EAAE,EAAE;QACnD,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE;gBACR,IAAI,oBAAS,CAAC;oBACZ,OAAO,EAAE;;;;;;EAMjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGtE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;;;EAG5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;;;OAGzB;iBACE,CAAC;aACH;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,kBAAkB,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B"}
@@ -1,8 +1,9 @@
1
- import { Edge } from "../types/Flows.types";
2
- import { PreCompiledGraph } from "../types/LangGraph.types";
3
- import { BaseLanguageModel } from "@langchain/core/language_models/base";
4
- export declare const edgeFactory: <Memory>({ graph, edges, llm }: {
1
+ import { Edge, Node } from '../types/Flows.types';
2
+ import { PreCompiledGraph } from '../types/LangGraph.types';
3
+ import { BaseLanguageModel } from '@langchain/core/language_models/base';
4
+ export declare const edgeFactory: ({ graph, edges, nodes, llm, }: {
5
5
  graph: PreCompiledGraph;
6
- edges: Edge<Memory>[];
6
+ edges: Edge[];
7
+ nodes: Record<string, Node>;
7
8
  llm: BaseLanguageModel;
8
9
  }) => void;