@minded-ai/mindedjs 1.0.100-beta.2 → 1.0.100-beta.5

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.
@@ -1,11 +1,13 @@
1
1
  import { BrowserTaskNode } from '../types/Flows.types';
2
2
  import { PreCompiledGraph } from '../types/LangGraph.types';
3
3
  import { Agent } from '../agent';
4
+ import { LLMProviders } from '../types/LLM.types';
4
5
  type AddBrowserTaskNodeParams = {
5
6
  graph: PreCompiledGraph;
6
7
  node: BrowserTaskNode;
7
8
  agent: Agent;
9
+ llm: (typeof LLMProviders)[keyof typeof LLMProviders];
8
10
  };
9
- export declare const addBrowserTaskNode: ({ graph, node, agent }: AddBrowserTaskNodeParams) => Promise<void>;
11
+ export declare const addBrowserTaskNode: ({ graph, node, agent, llm }: AddBrowserTaskNodeParams) => Promise<void>;
10
12
  export {};
11
13
  //# sourceMappingURL=addBrowserTaskNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addBrowserTaskNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAO7E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,wBAAwB,wBAAwB,kBAuFxF,CAAC"}
1
+ {"version":3,"file":"addBrowserTaskNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAO7E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,6BAA6B,wBAAwB,kBA+I7F,CAAC"}
@@ -7,45 +7,92 @@ const history_1 = require("../utils/history");
7
7
  const messages_1 = require("@langchain/core/messages");
8
8
  const executeBrowserTask_1 = require("../browserTask/executeBrowserTask");
9
9
  const uuid_1 = require("uuid");
10
- const addBrowserTaskNode = async ({ graph, node, agent }) => {
10
+ const zod_1 = require("zod");
11
+ const tools_1 = require("@langchain/core/tools");
12
+ const playbooks_1 = require("../playbooks/playbooks");
13
+ const addBrowserTaskNode = async ({ graph, node, agent, llm }) => {
11
14
  const callback = async (state) => {
15
+ let inputArgs = {};
16
+ let toolCallId;
17
+ let toolCallingMessageId;
18
+ let toolCallingMessage;
19
+ // Check if inputSchema exists and has fields
20
+ if (node.inputSchema && node.inputSchema.length > 0) {
21
+ // Convert inputSchema to Zod schema
22
+ const zodSchemaFields = {};
23
+ for (const field of node.inputSchema) {
24
+ const baseType = field.type === 'string' ? zod_1.z.string() : zod_1.z.number();
25
+ zodSchemaFields[field.name] = field.required ? baseType : baseType.optional();
26
+ }
27
+ const zodSchema = zod_1.z.object(zodSchemaFields);
28
+ // Create tool definition
29
+ const browserTaskTool = (0, tools_1.tool)(() => { }, {
30
+ name: node.displayName,
31
+ description: node.prompt,
32
+ schema: zodSchema,
33
+ });
34
+ // Get compiled playbooks
35
+ const playbookParams = {
36
+ ...state.memory,
37
+ state,
38
+ currentTime: new Date().toISOString(),
39
+ };
40
+ const compiledPlaybooks = (0, playbooks_1.compilePlaybooks)(agent.playbooks, playbookParams) || '';
41
+ // Create prompt for LLM
42
+ const toolPrompt = `${compiledPlaybooks ? compiledPlaybooks + '\n\n' : ''}
43
+ Additional context:
44
+ workflow memory: ${JSON.stringify(state.memory)}
45
+ `;
46
+ // Get tool call from LLM
47
+ const aiMessage = await llm
48
+ .bindTools([browserTaskTool], {
49
+ tool_choice: browserTaskTool.name,
50
+ })
51
+ .invoke([...state.messages, new messages_1.SystemMessage(toolPrompt)]);
52
+ if (!aiMessage.tool_calls || aiMessage.tool_calls.length === 0) {
53
+ throw new Error('Failed to generate tool call for browser task input');
54
+ }
55
+ // Extract input arguments
56
+ inputArgs = aiMessage.tool_calls[0].args;
57
+ toolCallId = aiMessage.tool_calls[0].id;
58
+ toolCallingMessageId = aiMessage.id;
59
+ toolCallingMessage = aiMessage;
60
+ }
61
+ else {
62
+ // No input schema - create a minimal AI message with tool calls
63
+ toolCallId = (0, uuid_1.v4)();
64
+ toolCallingMessageId = (0, uuid_1.v4)();
65
+ // Create an AI message with tool_calls to satisfy the API requirement
66
+ toolCallingMessage = new messages_1.AIMessage({
67
+ content: '',
68
+ id: toolCallingMessageId,
69
+ tool_calls: [{
70
+ id: toolCallId,
71
+ name: 'browser-task',
72
+ args: {},
73
+ }],
74
+ });
75
+ }
76
+ // Update state with the tool calling message
77
+ await agent.compiledGraph.updateState(agent.getLangraphConfig(state.sessionId), {
78
+ messages: [toolCallingMessage],
79
+ }, node.name);
80
+ // Build the prompt with input arguments
12
81
  const prompt = `
13
- Follow the instructions. Any retrieved data should be printed as string and not saved to a file
14
- # Task instructions:\n${node.prompt}\n\n
15
- ${state.memory ? `# Task context:\n${JSON.stringify(state.memory)}\n\n` : ''}
16
- # Conversation history:\n${state.messages.map((m) => `${m.getType()}: ${m.content}`).join('\n')}
82
+ # Follow the instructions. Any retrieved data should be printed as string and not saved to a file.
83
+ ${state.memory ? `## Task context:\n${JSON.stringify(state.memory)}\n\n` : ''}
84
+ ${Object.keys(inputArgs).length > 0 ? `## Input parameters:\n${JSON.stringify(inputArgs, null, 2)}\n\n` : ''}
85
+ ## Task instructions:\n${node.prompt}\n\n
17
86
  `;
18
- logger_1.logger.info({ msg: `Executing browser task node ${node.displayName}`, prompt, model: node.model });
19
- const toolCallId = (0, uuid_1.v4)();
20
- const toolCallingMessageId = (0, uuid_1.v4)();
21
- const toolCallingMessage = new messages_1.AIMessage({
22
- id: toolCallingMessageId,
23
- content: '',
24
- tool_calls: [
25
- {
26
- id: toolCallId,
27
- name: 'browser-task',
28
- args: {
29
- prompt,
30
- },
31
- },
32
- ],
33
- additional_kwargs: {
34
- mindedMetadata: {
35
- nodeType: Flows_types_1.NodeType.BROWSER_TASK,
36
- },
37
- },
38
- });
87
+ logger_1.logger.info({ msg: `Executing browser task node ${node.displayName}`, prompt, model: node.model, inputArgs });
39
88
  try {
40
- const result = await (0, executeBrowserTask_1.executeBrowserTask)(node.prompt);
41
- await agent.compiledGraph.updateState(agent.getLangraphConfig(state.sessionId), {
42
- messages: [toolCallingMessage],
43
- }, node.name);
89
+ const output = await (0, executeBrowserTask_1.executeBrowserTask)(prompt, node.model);
90
+ const result = output.split(` Result: `)[1] || output;
44
91
  logger_1.logger.debug({ message: 'Browser task result', result });
45
92
  const toolCall = new messages_1.ToolMessage({
46
93
  id: (0, uuid_1.v4)(),
47
94
  content: JSON.stringify({
48
- result: result.split(` Result: `)[1],
95
+ result,
49
96
  }),
50
97
  name: 'browser-task',
51
98
  tool_call_id: toolCallId,
@@ -61,7 +108,7 @@ const addBrowserTaskNode = async ({ graph, node, agent }) => {
61
108
  type: Flows_types_1.NodeType.BROWSER_TASK,
62
109
  nodeId: node.name,
63
110
  nodeDisplayName: node.displayName,
64
- raw: result,
111
+ raw: output,
65
112
  messageIds: [toolCallingMessageId],
66
113
  }),
67
114
  messages: [toolCallingMessage, toolCall],
@@ -1 +1 @@
1
- {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":";;;AACA,sDAAiE;AAGjE,4CAAyC;AACzC,8CAAqD;AACrD,uDAAiF;AACjF,0EAAuE;AACvE,+BAAoC;AAEpC,6BAAwB;AACxB,iDAA8D;AAE9D,sDAA0D;AASnD,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAA4B,EAAE,EAAE;IAChG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,IAAI,SAAS,GAAwB,EAAE,CAAC;QACxC,IAAI,UAAkB,CAAC;QACvB,IAAI,oBAA4B,CAAC;QACjC,IAAI,kBAA6B,CAAC;QAElC,6CAA6C;QAC7C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,oCAAoC;YACpC,MAAM,eAAe,GAA8B,EAAE,CAAC;YACtD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;gBACnE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChF,CAAC;YACD,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAE5C,yBAAyB;YACzB,MAAM,eAAe,GAAG,IAAA,YAAa,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,WAAW;gBACtB,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,yBAAyB;YACzB,MAAM,cAAc,GAAG;gBACrB,GAAG,KAAK,CAAC,MAAM;gBACf,KAAK;gBACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,MAAM,iBAAiB,GAAG,IAAA,4BAAgB,EAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;YAElF,wBAAwB;YACxB,MAAM,UAAU,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;;qBAE1D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;CAChD,CAAC;YAEI,yBAAyB;YACzB,MAAM,SAAS,GAAG,MAAM,GAAG;iBACxB,SAAS,CAAC,CAAC,eAAe,CAAC,EAAE;gBAC5B,WAAW,EAAE,eAAe,CAAC,IAAI;aAClC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,wBAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE9D,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YAED,0BAA0B;YAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,oBAAoB,GAAG,SAAS,CAAC,EAAG,CAAC;YACrC,kBAAkB,GAAG,SAAS,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,UAAU,GAAG,IAAA,SAAM,GAAE,CAAC;YACtB,oBAAoB,GAAG,IAAA,SAAM,GAAE,CAAC;YAEhC,sEAAsE;YACtE,kBAAkB,GAAG,IAAI,oBAAS,CAAC;gBACjC,OAAO,EAAE,EAAE;gBACX,EAAE,EAAE,oBAAoB;gBACxB,UAAU,EAAE,CAAC;wBACX,EAAE,EAAE,UAAU;wBACd,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,EAAE;qBACT,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,CAAC,aAAa,CAAC,WAAW,CACnC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,EACxC;YACE,QAAQ,EAAE,CAAC,kBAAkB,CAAC;SAC/B,EACD,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,wCAAwC;QACxC,MAAM,MAAM,GAAG;;MAEb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;MAC3E,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;6BACnF,IAAI,CAAC,MAAM;KACnC,CAAC;QAEF,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,+BAA+B,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE9G,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAkB,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;YAEtD,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,sBAAW,CAAC;gBAC/B,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,MAAM;iBACP,CAAC;gBACF,IAAI,EAAE,cAAc;gBACpB,YAAY,EAAE,UAAU;gBACxB,MAAM,EAAE,SAAS;gBACjB,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;qBAChC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;oBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;oBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,GAAG,EAAE,MAAM;oBACX,UAAU,EAAE,CAAC,oBAAoB,CAAC;iBACnC,CAAC;gBACF,QAAQ,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,IAAI,sBAAW,CAAC;gBAC/B,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;iBACjE,CAAC;gBACF,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,cAAc;gBACpB,YAAY,EAAE,UAAU;gBACxB,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;qBAChC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC;aACzC,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AA/IW,QAAA,kBAAkB,sBA+I7B"}
@@ -31,7 +31,7 @@ const nodeFactory = ({ graph, node, tools, llm, emit, agent, }) => {
31
31
  (0, addJumpToNode_1.addJumpToNode)({ graph, node });
32
32
  break;
33
33
  case Flows_types_1.NodeType.BROWSER_TASK:
34
- (0, addBrowserTaskNode_1.addBrowserTaskNode)({ graph, node, agent });
34
+ (0, addBrowserTaskNode_1.addBrowserTaskNode)({ graph, node, agent, llm });
35
35
  break;
36
36
  default:
37
37
  throw new Error(`Unsupported node type: ${nodeType}`);
@@ -1 +1 @@
1
- {"version":3,"file":"nodeFactory.js","sourceRoot":"","sources":["../../src/nodes/nodeFactory.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAGtD,+CAA4C;AAC5C,mDAAgD;AAGhD,qDAAkD;AAClD,qDAAkD;AAGlD,mDAAgD;AAChD,uDAAoD;AACpD,6DAA0D;AAEnD,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,GAQN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,sBAAQ,CAAC,OAAO;YACnB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,sBAAQ,CAAC,IAAI;YAChB,IAAA,yBAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,iCAAe,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,sBAAQ,CAAC,WAAW;YACvB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,uCAAkB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAzCW,QAAA,WAAW,eAyCtB"}
1
+ {"version":3,"file":"nodeFactory.js","sourceRoot":"","sources":["../../src/nodes/nodeFactory.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AAGtD,+CAA4C;AAC5C,mDAAgD;AAGhD,qDAAkD;AAClD,qDAAkD;AAGlD,mDAAgD;AAChD,uDAAoD;AACpD,6DAA0D;AAEnD,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,KAAK,GAQN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,sBAAQ,CAAC,OAAO;YACnB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,MAAM;QACR,KAAK,sBAAQ,CAAC,IAAI;YAChB,IAAA,yBAAW,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,iCAAe,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,sBAAQ,CAAC,QAAQ;YACpB,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,MAAM;QACR,KAAK,sBAAQ,CAAC,WAAW;YACvB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,6BAAa,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,sBAAQ,CAAC,YAAY;YACxB,IAAA,uCAAkB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAzCW,QAAA,WAAW,eAyCtB"}
@@ -81,6 +81,12 @@ export interface BrowserTaskNode extends BaseNode {
81
81
  type: NodeType.BROWSER_TASK;
82
82
  prompt: string;
83
83
  model?: string;
84
+ inputSchema?: {
85
+ name: string;
86
+ type: 'string' | 'number';
87
+ description?: string;
88
+ required?: boolean;
89
+ }[];
84
90
  }
85
91
  export type TriggerNode = AppTriggerNode | WebhookTriggerNode | ManualTriggerNode | VoiceTriggerNode;
86
92
  export interface JunctionNode extends BaseNode {
@@ -1 +1 @@
1
- {"version":3,"file":"Flows.types.d.ts","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Flows.types.d.ts","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Flows.types.js","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,gCAAoB,CAAA;IACpB,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,wCAA4B,CAAA;AAC9B,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,kDAAsC,CAAA;IACtC,gDAAoC,CAAA;IACpC,wCAA4B,CAAA;AAC9B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAWD,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AA4GD,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,2CAAoB,CAAA;AACtB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAsBD,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,uCAAe,CAAA;IACf,yCAAiB,CAAA;IACjB,mCAAW,CAAA;AACb,CAAC,EAPW,oBAAoB,oCAApB,oBAAoB,QAO/B;AAQD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;IACvC,oDAA+B,CAAA;AACjC,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,4DAAqC,CAAA;IACrC,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
1
+ {"version":3,"file":"Flows.types.js","sourceRoot":"","sources":["../../src/types/Flows.types.ts"],"names":[],"mappings":";;;AAMA,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;IACb,gCAAoB,CAAA;IACpB,sCAA0B,CAAA;IAC1B,uCAA2B,CAAA;IAC3B,wCAA4B,CAAA;AAC9B,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,kDAAsC,CAAA;IACtC,gDAAoC,CAAA;IACpC,wCAA4B,CAAA;AAC9B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAWD,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAkHD,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,2CAAoB,CAAA;AACtB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAsBD,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,uCAAe,CAAA;IACf,yCAAiB,CAAA;IACjB,mCAAW,CAAA;AACb,CAAC,EAPW,oBAAoB,oCAApB,oBAAoB,QAO/B;AAQD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;IACvC,oDAA+B,CAAA;AACjC,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,4DAAqC,CAAA;IACrC,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "1.0.100-beta.2",
3
+ "version": "1.0.100-beta.5",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -4,62 +4,121 @@ import { PreCompiledGraph, stateAnnotation } from '../types/LangGraph.types';
4
4
  import { HistoryStep } from '../types/Agent.types';
5
5
  import { logger } from '../utils/logger';
6
6
  import { createHistoryStep } from '../utils/history';
7
- import { AIMessage, ToolMessage } from '@langchain/core/messages';
7
+ import { ToolMessage, SystemMessage, AIMessage } from '@langchain/core/messages';
8
8
  import { executeBrowserTask } from '../browserTask/executeBrowserTask';
9
9
  import { v4 as uuidv4 } from 'uuid';
10
10
  import { Agent } from '../agent';
11
+ import { z } from 'zod';
12
+ import { tool as langchainTool } from '@langchain/core/tools';
13
+ import { LLMProviders } from '../types/LLM.types';
14
+ import { compilePlaybooks } from '../playbooks/playbooks';
11
15
 
12
16
  type AddBrowserTaskNodeParams = {
13
17
  graph: PreCompiledGraph;
14
18
  node: BrowserTaskNode;
15
19
  agent: Agent;
20
+ llm: (typeof LLMProviders)[keyof typeof LLMProviders];
16
21
  };
17
22
 
18
- export const addBrowserTaskNode = async ({ graph, node, agent }: AddBrowserTaskNodeParams) => {
23
+ export const addBrowserTaskNode = async ({ graph, node, agent, llm }: AddBrowserTaskNodeParams) => {
19
24
  const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
25
+ let inputArgs: Record<string, any> = {};
26
+ let toolCallId: string;
27
+ let toolCallingMessageId: string;
28
+ let toolCallingMessage: AIMessage;
20
29
 
21
- const prompt = `
22
- Follow the instructions. Any retrieved data should be printed as string and not saved to a file
23
- # Task instructions:\n${node.prompt}\n\n
24
- ${state.memory ? `# Task context:\n${JSON.stringify(state.memory)}\n\n` : ''}
25
- # Conversation history:\n${state.messages.map((m) => `${m.getType()}: ${m.content}`).join('\n')}
26
- `;
27
- logger.info({ msg: `Executing browser task node ${node.displayName}`, prompt, model: node.model });
28
-
29
- const toolCallId = uuidv4();
30
- const toolCallingMessageId = uuidv4();
31
- const toolCallingMessage = new AIMessage({
32
- id: toolCallingMessageId,
33
- content: '',
34
- tool_calls: [
35
- {
30
+ // Check if inputSchema exists and has fields
31
+ if (node.inputSchema && node.inputSchema.length > 0) {
32
+ // Convert inputSchema to Zod schema
33
+ const zodSchemaFields: Record<string, z.ZodType> = {};
34
+ for (const field of node.inputSchema) {
35
+ const baseType = field.type === 'string' ? z.string() : z.number();
36
+ zodSchemaFields[field.name] = field.required ? baseType : baseType.optional();
37
+ }
38
+ const zodSchema = z.object(zodSchemaFields);
39
+
40
+ // Create tool definition
41
+ const browserTaskTool = langchainTool(() => { }, {
42
+ name: node.displayName,
43
+ description: node.prompt,
44
+ schema: zodSchema,
45
+ });
46
+
47
+ // Get compiled playbooks
48
+ const playbookParams = {
49
+ ...state.memory,
50
+ state,
51
+ currentTime: new Date().toISOString(),
52
+ };
53
+ const compiledPlaybooks = compilePlaybooks(agent.playbooks, playbookParams) || '';
54
+
55
+ // Create prompt for LLM
56
+ const toolPrompt = `${compiledPlaybooks ? compiledPlaybooks + '\n\n' : ''}
57
+ Additional context:
58
+ workflow memory: ${JSON.stringify(state.memory)}
59
+ `;
60
+
61
+ // Get tool call from LLM
62
+ const aiMessage = await llm
63
+ .bindTools([browserTaskTool], {
64
+ tool_choice: browserTaskTool.name,
65
+ })
66
+ .invoke([...state.messages, new SystemMessage(toolPrompt)]);
67
+
68
+ if (!aiMessage.tool_calls || aiMessage.tool_calls.length === 0) {
69
+ throw new Error('Failed to generate tool call for browser task input');
70
+ }
71
+
72
+ // Extract input arguments
73
+ inputArgs = aiMessage.tool_calls[0].args;
74
+ toolCallId = aiMessage.tool_calls[0].id;
75
+ toolCallingMessageId = aiMessage.id!;
76
+ toolCallingMessage = aiMessage;
77
+ } else {
78
+ // No input schema - create a minimal AI message with tool calls
79
+ toolCallId = uuidv4();
80
+ toolCallingMessageId = uuidv4();
81
+
82
+ // Create an AI message with tool_calls to satisfy the API requirement
83
+ toolCallingMessage = new AIMessage({
84
+ content: '',
85
+ id: toolCallingMessageId,
86
+ tool_calls: [{
36
87
  id: toolCallId,
37
88
  name: 'browser-task',
38
- args: {
39
- prompt,
40
- },
41
- },
42
- ],
43
- additional_kwargs: {
44
- mindedMetadata: {
45
- nodeType: NodeType.BROWSER_TASK,
46
- },
89
+ args: {},
90
+ }],
91
+ });
92
+ }
93
+
94
+ // Update state with the tool calling message
95
+ await agent.compiledGraph.updateState(
96
+ agent.getLangraphConfig(state.sessionId),
97
+ {
98
+ messages: [toolCallingMessage],
47
99
  },
48
- });
100
+ node.name,
101
+ );
102
+
103
+ // Build the prompt with input arguments
104
+ const prompt = `
105
+ # Follow the instructions. Any retrieved data should be printed as string and not saved to a file.
106
+ ${state.memory ? `## Task context:\n${JSON.stringify(state.memory)}\n\n` : ''}
107
+ ${Object.keys(inputArgs).length > 0 ? `## Input parameters:\n${JSON.stringify(inputArgs, null, 2)}\n\n` : ''}
108
+ ## Task instructions:\n${node.prompt}\n\n
109
+ `;
110
+
111
+ logger.info({ msg: `Executing browser task node ${node.displayName}`, prompt, model: node.model, inputArgs });
112
+
49
113
  try {
50
- const result = await executeBrowserTask(node.prompt);
51
- await agent.compiledGraph.updateState(
52
- agent.getLangraphConfig(state.sessionId),
53
- {
54
- messages: [toolCallingMessage],
55
- },
56
- node.name,
57
- );
114
+ const output = await executeBrowserTask(prompt, node.model);
115
+ const result = output.split(` Result: `)[1] || output;
116
+
58
117
  logger.debug({ message: 'Browser task result', result });
59
118
  const toolCall = new ToolMessage({
60
119
  id: uuidv4(),
61
120
  content: JSON.stringify({
62
- result: result.split(` Result: `)[1],
121
+ result,
63
122
  }),
64
123
  name: 'browser-task',
65
124
  tool_call_id: toolCallId,
@@ -70,12 +129,13 @@ export const addBrowserTaskNode = async ({ graph, node, agent }: AddBrowserTaskN
70
129
  },
71
130
  },
72
131
  });
132
+
73
133
  return {
74
134
  history: createHistoryStep<HistoryStep>(state.history, {
75
135
  type: NodeType.BROWSER_TASK,
76
136
  nodeId: node.name,
77
137
  nodeDisplayName: node.displayName,
78
- raw: result,
138
+ raw: output,
79
139
  messageIds: [toolCallingMessageId],
80
140
  }),
81
141
  messages: [toolCallingMessage, toolCall],
@@ -96,6 +156,7 @@ export const addBrowserTaskNode = async ({ graph, node, agent }: AddBrowserTaskN
96
156
  },
97
157
  },
98
158
  });
159
+
99
160
  return {
100
161
  messages: [toolCallingMessage, toolCall],
101
162
  };
@@ -49,9 +49,9 @@ export const nodeFactory = ({
49
49
  addJumpToNode({ graph, node });
50
50
  break;
51
51
  case NodeType.BROWSER_TASK:
52
- addBrowserTaskNode({ graph, node, agent });
52
+ addBrowserTaskNode({ graph, node, agent, llm });
53
53
  break;
54
54
  default:
55
55
  throw new Error(`Unsupported node type: ${nodeType}`);
56
56
  }
57
- };
57
+ };
@@ -94,6 +94,12 @@ export interface BrowserTaskNode extends BaseNode {
94
94
  type: NodeType.BROWSER_TASK;
95
95
  prompt: string;
96
96
  model?: string;
97
+ inputSchema?: {
98
+ name: string;
99
+ type: 'string' | 'number';
100
+ description?: string;
101
+ required?: boolean;
102
+ }[];
97
103
  }
98
104
 
99
105
  export type TriggerNode = AppTriggerNode | WebhookTriggerNode | ManualTriggerNode | VoiceTriggerNode;