@minded-ai/mindedjs 1.0.124 → 1.0.126-beta-1

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 (52) hide show
  1. package/dist/agent.d.ts +2 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +8 -5
  4. package/dist/agent.js.map +1 -1
  5. package/dist/browserTask/README.md +419 -0
  6. package/dist/browserTask/browserAgent.py +632 -0
  7. package/dist/browserTask/captcha_isolated.png +0 -0
  8. package/dist/browserTask/executeBrowserTask.d.ts +1 -12
  9. package/dist/browserTask/executeBrowserTask.d.ts.map +1 -1
  10. package/dist/browserTask/executeBrowserTask.js +3 -178
  11. package/dist/browserTask/executeBrowserTask.js.map +1 -1
  12. package/dist/browserTask/executeBrowserTask.ts +79 -0
  13. package/dist/browserTask/requirements.txt +8 -0
  14. package/dist/browserTask/setup.sh +144 -0
  15. package/dist/edges/createPromptRouter.js +1 -1
  16. package/dist/edges/createPromptRouter.js.map +1 -1
  17. package/dist/internalTools/retell.d.ts +12 -0
  18. package/dist/internalTools/retell.d.ts.map +1 -0
  19. package/dist/internalTools/retell.js +54 -0
  20. package/dist/internalTools/retell.js.map +1 -0
  21. package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
  22. package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
  23. package/dist/internalTools/sendPlaceholderMessage.js +61 -0
  24. package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
  25. package/dist/nodes/addBrowserTaskNode.js +1 -1
  26. package/dist/nodes/addBrowserTaskNode.js.map +1 -1
  27. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  28. package/dist/nodes/addToolRunNode.js +1 -1
  29. package/dist/nodes/addToolRunNode.js.map +1 -1
  30. package/dist/nodes/compilePrompt.js +1 -1
  31. package/dist/platform/mindedConnectionTypes.d.ts +1 -0
  32. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  33. package/dist/playbooks/playbooks.js +1 -1
  34. package/dist/playbooks/playbooks.js.map +1 -1
  35. package/dist/types/Flows.types.d.ts +1 -0
  36. package/dist/types/Flows.types.d.ts.map +1 -1
  37. package/dist/types/Flows.types.js.map +1 -1
  38. package/dist/utils/extractStateMemoryResponse.d.ts +2 -1
  39. package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -1
  40. package/dist/utils/extractStateMemoryResponse.js +72 -0
  41. package/dist/utils/extractStateMemoryResponse.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/agent.ts +11 -7
  44. package/src/browserTask/executeBrowserTask.ts +2 -213
  45. package/src/edges/createPromptRouter.ts +1 -1
  46. package/src/nodes/addBrowserTaskNode.ts +1 -1
  47. package/src/nodes/addToolRunNode.ts +2 -1
  48. package/src/nodes/compilePrompt.ts +1 -1
  49. package/src/platform/mindedConnectionTypes.ts +1 -0
  50. package/src/playbooks/playbooks.ts +2 -2
  51. package/src/types/Flows.types.ts +1 -0
  52. package/src/utils/extractStateMemoryResponse.ts +78 -2
@@ -57,7 +57,8 @@ export const addToolRunNode = async ({ graph, tools, toolNode, attachedToNodeNam
57
57
  const toolStateUpdate = extractToolStateResponse(toolCallMessage as ToolMessage);
58
58
 
59
59
  // Push the toolCallMessage into the messages array from toolStateUpdate
60
- const updatedMessages = [toolCallMessage, ...((toolStateUpdate as any).messages || [])];
60
+ const updatedMessages = [toolCallMessage, ...((toolStateUpdate).messages || [])];
61
+
61
62
  // Return the full state update from the tool with the updated messages
62
63
 
63
64
  return {
@@ -31,7 +31,7 @@ function replacePlaceholders(text: string, params: Record<string, any>): string
31
31
  if (value && typeof value === 'object' && k in value) {
32
32
  value = value[k];
33
33
  } else {
34
- logger.warn({ message: `Placeholder {${key}} in prompt not found in memory. It will remain as placeholder.` });
34
+ logger.warn({ message: `Placeholder {${key}} in prompt not found in params. It will remain as placeholder.` });
35
35
  return match; // Return original if key not found
36
36
  }
37
37
  }
@@ -441,6 +441,7 @@ export interface UpdateStateRequest extends BasemindedConnectionSocketMessage {
441
441
  export interface CreateBrowserSessionRequest extends BasemindedConnectionSocketMessage {
442
442
  type: mindedConnectionSocketMessageType.CREATE_BROWSER_SESSION;
443
443
  proxy?: string; // 2-digit country code like 'IL'
444
+ onPrem?: boolean;
444
445
  }
445
446
 
446
447
  export interface CreateBrowserSessionResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
@@ -61,8 +61,8 @@ function editorJsToMarkdown(blocks: OutputBlockData[]): string {
61
61
  const items = block.data?.items || [];
62
62
  const style = block.data?.style || 'unordered';
63
63
  return items
64
- .map((item: string, index: number) => {
65
- const decodedItem = decodeHtmlEntities(item);
64
+ .map((item: { content: string }, index: number) => {
65
+ const decodedItem = decodeHtmlEntities(item.content);
66
66
  if (style === 'ordered') {
67
67
  return `${index + 1}. ${decodedItem}`;
68
68
  } else {
@@ -114,6 +114,7 @@ export interface BrowserTaskNode extends BaseNode {
114
114
  defaultPayload?: string;
115
115
  proxy?: string; // 2-digit country code like 'IL'
116
116
  hooks?: { name: string }[]; // Array of hooks to be passed to the browser-use lambda
117
+ onPrem?: boolean;
117
118
  }
118
119
 
119
120
  export type TriggerNode = AppTriggerNode | WebhookTriggerNode | ManualTriggerNode | VoiceTriggerNode | InterfaceTriggerNode;
@@ -1,10 +1,14 @@
1
- import { ToolMessage } from '@langchain/core/messages';
1
+ import { BaseMessage, ToolMessage, AIMessage, HumanMessage, SystemMessage } from '@langchain/core/messages';
2
2
  import { logger } from './logger';
3
+ import { State } from '../types/LangGraph.types';
3
4
 
4
- const extractToolStateResponse = <State>(toolMessage: ToolMessage): Partial<State> => {
5
+ const extractToolStateResponse = (toolMessage: ToolMessage): Partial<State> => {
5
6
  try {
6
7
  const parsed = JSON.parse(toolMessage.content as string);
7
8
  if (typeof parsed === 'object' && parsed !== null && 'state' in parsed) {
9
+ if (parsed.state.messages) {
10
+ parsed.state.messages = constructMessagesFromToolMessage(parsed.state.messages);
11
+ }
8
12
  return parsed.state;
9
13
  }
10
14
  } catch (error) {
@@ -13,4 +17,76 @@ const extractToolStateResponse = <State>(toolMessage: ToolMessage): Partial<Stat
13
17
  return {};
14
18
  };
15
19
 
20
+ const constructMessagesFromToolMessage = (messages: any[]): BaseMessage[] => {
21
+ if (!Array.isArray(messages)) {
22
+ logger.error({ msg: 'Expected messages to be an array', messages });
23
+ return [];
24
+ }
25
+
26
+ return messages.map((messageObj) => {
27
+ try {
28
+ // Handle case where message is already a BaseMessage instance
29
+ if (messageObj instanceof BaseMessage) {
30
+ return messageObj;
31
+ }
32
+
33
+ // Handle case where message is a plain object that needs reconstruction
34
+ const messageType = messageObj.id[2];
35
+ const content = messageObj.kwargs.content || '';
36
+ const id = messageObj.kwargs.id;
37
+ const additionalKwargs = messageObj.additional_kwargs || {};
38
+
39
+ switch (messageType) {
40
+ case 'AIMessage':
41
+ return new AIMessage({
42
+ content,
43
+ id,
44
+ additional_kwargs: additionalKwargs,
45
+ tool_calls: messageObj.tool_calls || [],
46
+ invalid_tool_calls: messageObj.invalid_tool_calls || [],
47
+ });
48
+ case 'HumanMessage':
49
+ return new HumanMessage({
50
+ content,
51
+ id,
52
+ additional_kwargs: additionalKwargs,
53
+ });
54
+ case 'SystemMessage':
55
+ return new SystemMessage({
56
+ content,
57
+ id,
58
+ additional_kwargs: additionalKwargs,
59
+ });
60
+ case 'ToolMessage':
61
+ return new ToolMessage({
62
+ content,
63
+ id,
64
+ additional_kwargs: additionalKwargs,
65
+ tool_call_id: messageObj.tool_call_id || '',
66
+ });
67
+
68
+ default:
69
+ // Default to HumanMessage for unknown types
70
+ logger.warn({
71
+ msg: 'Unknown message type, defaulting to HumanMessage',
72
+ messageType,
73
+ messageObj
74
+ });
75
+ return null;
76
+ }
77
+ } catch (error) {
78
+ logger.error({
79
+ msg: 'Error reconstructing message',
80
+ error,
81
+ messageObj
82
+ });
83
+ // Return a fallback HumanMessage in case of error
84
+ return new HumanMessage({
85
+ content: messageObj.content || 'Error reconstructing message',
86
+ id: messageObj.id,
87
+ });
88
+ }
89
+ }).filter(Boolean) as BaseMessage[];
90
+ };
91
+
16
92
  export default extractToolStateResponse;