@minded-ai/mindedjs 1.0.130 → 1.0.131

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 (84) hide show
  1. package/dist/agent.js +11 -11
  2. package/dist/agent.js.map +1 -1
  3. package/dist/browserTask/executeBrowserTask.js +6 -6
  4. package/dist/browserTask/executeBrowserTask.js.map +1 -1
  5. package/dist/cli/index.js +4 -4
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/edges/createLogicalRouter.js +3 -3
  8. package/dist/edges/createLogicalRouter.js.map +1 -1
  9. package/dist/edges/createPromptRouter.js +4 -4
  10. package/dist/edges/createPromptRouter.js.map +1 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +6 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/internalTools/documentExtraction/documentExtraction.d.ts.map +1 -1
  16. package/dist/internalTools/documentExtraction/documentExtraction.js +15 -21
  17. package/dist/internalTools/documentExtraction/documentExtraction.js.map +1 -1
  18. package/dist/internalTools/libraryActionRunnerTool.js +4 -4
  19. package/dist/internalTools/libraryActionRunnerTool.js.map +1 -1
  20. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -1
  21. package/dist/interrupts/MindedInterruptSessionManager.js +19 -18
  22. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -1
  23. package/dist/nodes/addAppToolNode.js +3 -3
  24. package/dist/nodes/addAppToolNode.js.map +1 -1
  25. package/dist/nodes/addToolRunNode.js +3 -3
  26. package/dist/nodes/addToolRunNode.js.map +1 -1
  27. package/dist/nodes/compilePrompt.js +2 -2
  28. package/dist/nodes/compilePrompt.js.map +1 -1
  29. package/dist/platform/mindedCheckpointSaver.js +4 -4
  30. package/dist/platform/mindedCheckpointSaver.js.map +1 -1
  31. package/dist/platform/piiGateway/gateway.js +2 -2
  32. package/dist/platform/piiGateway/gateway.js.map +1 -1
  33. package/dist/platform/toolExecutor.js +4 -4
  34. package/dist/platform/toolExecutor.js.map +1 -1
  35. package/dist/platform/utils/tools.js +3 -3
  36. package/dist/platform/utils/tools.js.map +1 -1
  37. package/dist/playbooks/playbooks.js +5 -5
  38. package/dist/playbooks/playbooks.js.map +1 -1
  39. package/dist/toolsLibrary/classifier.d.ts.map +1 -1
  40. package/dist/toolsLibrary/classifier.js +9 -12
  41. package/dist/toolsLibrary/classifier.js.map +1 -1
  42. package/dist/toolsLibrary/parseDocument.js +5 -5
  43. package/dist/toolsLibrary/parseDocument.js.map +1 -1
  44. package/dist/utils/agentUtils.js +2 -2
  45. package/dist/utils/agentUtils.js.map +1 -1
  46. package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -1
  47. package/dist/utils/extractStateMemoryResponse.js +10 -8
  48. package/dist/utils/extractStateMemoryResponse.js.map +1 -1
  49. package/dist/utils/logger.d.ts.map +1 -1
  50. package/dist/utils/logger.js +3 -0
  51. package/dist/utils/logger.js.map +1 -1
  52. package/dist/voice/voiceSession.js +6 -6
  53. package/dist/voice/voiceSession.js.map +1 -1
  54. package/docs/examples/order-refund-flow.md +6 -6
  55. package/docs/integrations/zendesk.md +2 -2
  56. package/docs/low-code-editor/tools.md +5 -4
  57. package/docs/platform/pii-masking.md +5 -4
  58. package/docs/sdk/agent-api.md +10 -10
  59. package/docs/sdk/logging.md +1 -1
  60. package/docs/tooling/document-processing.md +7 -7
  61. package/package.json +1 -1
  62. package/src/agent.ts +11 -11
  63. package/src/browserTask/executeBrowserTask.ts +6 -6
  64. package/src/cli/index.ts +4 -4
  65. package/src/edges/createLogicalRouter.ts +3 -3
  66. package/src/edges/createPromptRouter.ts +4 -4
  67. package/src/index.ts +4 -0
  68. package/src/internalTools/documentExtraction/documentExtraction.ts +15 -21
  69. package/src/internalTools/libraryActionRunnerTool.ts +4 -4
  70. package/src/interrupts/MindedInterruptSessionManager.ts +19 -18
  71. package/src/nodes/addAppToolNode.ts +3 -3
  72. package/src/nodes/addToolRunNode.ts +3 -3
  73. package/src/nodes/compilePrompt.ts +2 -2
  74. package/src/platform/mindedCheckpointSaver.ts +4 -4
  75. package/src/platform/piiGateway/gateway.ts +2 -2
  76. package/src/platform/toolExecutor.ts +4 -4
  77. package/src/platform/utils/tools.ts +3 -3
  78. package/src/playbooks/playbooks.ts +5 -5
  79. package/src/toolsLibrary/classifier.ts +9 -12
  80. package/src/toolsLibrary/parseDocument.ts +5 -5
  81. package/src/utils/agentUtils.ts +2 -2
  82. package/src/utils/extractStateMemoryResponse.ts +64 -62
  83. package/src/utils/logger.ts +3 -0
  84. package/src/voice/voiceSession.ts +6 -6
@@ -1,5 +1,6 @@
1
1
  import { BaseInterruptSessionManager, QueuedMessage, QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH } from './BaseInterruptSessionManager';
2
2
  import * as mindedConnection from '../platform/mindedConnection';
3
+ import { logger } from '../utils/logger';
3
4
  import {
4
5
  mindedConnectionSocketMessageType,
5
6
  InterruptSessionIsProcessedRequest,
@@ -35,8 +36,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
35
36
  },
36
37
  );
37
38
  return response.isProcessed ?? false;
38
- } catch (error) {
39
- console.error('Error checking if session is processed:', error);
39
+ } catch (err) {
40
+ logger.error({ message: 'Error checking if session is processed', err });
40
41
  return false;
41
42
  }
42
43
  }
@@ -51,8 +52,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
51
52
  },
52
53
  );
53
54
  return response.lockAcquired ?? false;
54
- } catch (error) {
55
- console.error('Error locking session:', error);
55
+ } catch (err) {
56
+ logger.error({ message: 'Error locking session', err });
56
57
  return false;
57
58
  }
58
59
  }
@@ -66,9 +67,9 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
66
67
  sessionId,
67
68
  },
68
69
  );
69
- } catch (error) {
70
- console.error('Error releasing session:', error);
71
- throw error;
70
+ } catch (err) {
71
+ logger.error({ message: 'Error releasing session', err });
72
+ throw err;
72
73
  }
73
74
  }
74
75
 
@@ -82,9 +83,9 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
82
83
  message,
83
84
  },
84
85
  );
85
- } catch (error) {
86
- console.error('Error enqueuing message:', error);
87
- throw error;
86
+ } catch (err) {
87
+ logger.error({ message: 'Error enqueuing message', err });
88
+ throw err;
88
89
  }
89
90
  }
90
91
 
@@ -98,8 +99,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
98
99
  },
99
100
  );
100
101
  return response.messages ?? [];
101
- } catch (error) {
102
- console.error('Error dequeuing all messages:', error);
102
+ } catch (err) {
103
+ logger.error({ message: 'Error dequeuing all messages', err });
103
104
  return [];
104
105
  }
105
106
  }
@@ -121,8 +122,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
121
122
  }
122
123
 
123
124
  return message;
124
- } catch (error) {
125
- console.error('Error dequeuing message:', error);
125
+ } catch (err) {
126
+ logger.error({ message: 'Error dequeuing message', err });
126
127
  return null;
127
128
  }
128
129
  }
@@ -138,8 +139,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
138
139
  },
139
140
  );
140
141
  return response.hasMessages ?? false;
141
- } catch (error) {
142
- console.error('Error checking if session has messages:', error);
142
+ } catch (err) {
143
+ logger.error({ message: 'Error checking if session has messages', err });
143
144
  return false;
144
145
  }
145
146
  }
@@ -154,8 +155,8 @@ export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
154
155
  },
155
156
  );
156
157
  return response.messages ?? [];
157
- } catch (error) {
158
- console.error('Error getting queued messages:', error);
158
+ } catch (err) {
159
+ logger.error({ message: 'Error getting queued messages', err });
159
160
  return [];
160
161
  }
161
162
  }
@@ -42,9 +42,9 @@ export const addAppToolNode = async ({
42
42
  try {
43
43
  const response = await appRunnerTool.execute({ input, state, agent });
44
44
  return response || {};
45
- } catch (error) {
46
- logger.error({ msg: `[Node] Error executing tool`, error, node: node.name });
47
- throw error;
45
+ } catch (err) {
46
+ logger.error({ message: `[Node] Error executing tool`, err, node: node.name });
47
+ throw err;
48
48
  }
49
49
  };
50
50
  const tool = langchainTool(executeWrapper, {
@@ -38,9 +38,9 @@ export const addToolRunNode = async ({ graph, tools, toolNode, attachedToNodeNam
38
38
  const endTime = Date.now();
39
39
  logger.debug({ msg: '[Tool] Tool execution time', tool: matchedTool.name, executionTimeMs: endTime - startTime });
40
40
  return response || {};
41
- } catch (error) {
42
- logger.error({ msg: '[Tool] Error executing tool', error, node: toolNode.displayName });
43
- throw error;
41
+ } catch (err) {
42
+ logger.error({ message: '[Tool] Error executing tool', err, node: toolNode.displayName });
43
+ throw err;
44
44
  }
45
45
  };
46
46
  const tool = langchainTool(executeWrapper, {
@@ -13,8 +13,8 @@ export function compilePrompt(prompt: string, params: Record<string, any> = {}):
13
13
  compiledPrompt = replacePlaceholders(compiledPrompt, params);
14
14
 
15
15
  return compiledPrompt;
16
- } catch (error) {
17
- logger.error({ message: 'Error compiling prompt', error });
16
+ } catch (err) {
17
+ logger.error({ message: 'Error compiling prompt', err });
18
18
  return prompt; // Return uncompiled if there's an error
19
19
  }
20
20
  }
@@ -125,8 +125,8 @@ export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
125
125
  },
126
126
  );
127
127
  return response.config;
128
- } catch (error) {
129
- logger.error({ msg: 'Error putting checkpoint:', error });
128
+ } catch (err) {
129
+ logger.error({ message: 'Error putting checkpoint:', err });
130
130
  return config;
131
131
  }
132
132
  }
@@ -139,8 +139,8 @@ export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
139
139
  writes,
140
140
  taskId,
141
141
  });
142
- } catch (error) {
143
- logger.error({ msg: 'Error putting writes:', error });
142
+ } catch (err) {
143
+ logger.error({ message: 'Error putting writes:', err });
144
144
  }
145
145
  }
146
146
  }
@@ -56,8 +56,8 @@ export class PIIGateway implements PIIGatewayInstance {
56
56
  headers: response.headers || {},
57
57
  config: config || {},
58
58
  };
59
- } catch (error) {
60
- logger.error({ msg: 'Secure HTTP request failed', error });
59
+ } catch (err) {
60
+ logger.error({ message: 'Secure HTTP request failed', err });
61
61
  return {
62
62
  data: undefined as T,
63
63
  status: 500,
@@ -103,15 +103,15 @@ export class ToolExecutor {
103
103
  return {
104
104
  result,
105
105
  };
106
- } catch (error) {
106
+ } catch (err) {
107
107
  logger.error({
108
- msg: '[ToolExecutor] Error executing tool',
108
+ message: '[ToolExecutor] Error executing tool',
109
109
  toolName,
110
- error: error instanceof Error ? error.message : String(error),
110
+ err,
111
111
  });
112
112
 
113
113
  return {
114
- error: error instanceof Error ? error.message : String(error),
114
+ error: err instanceof Error ? err.message : String(err),
115
115
  };
116
116
  }
117
117
  }
@@ -23,10 +23,10 @@ export const zodSchemaToParams = (zodSchema: any): any[] => {
23
23
  }
24
24
 
25
25
  return params;
26
- } catch (error) {
26
+ } catch (err) {
27
27
  logger.warn({
28
- msg: '[ToolExecutor] Error parsing Zod schema',
29
- error: error instanceof Error ? error.message : String(error),
28
+ message: '[ToolExecutor] Error parsing Zod schema',
29
+ err,
30
30
  });
31
31
  return [];
32
32
  }
@@ -92,9 +92,9 @@ function editorJsToMarkdown(blocks: OutputBlockData[]): string {
92
92
  return '';
93
93
  }
94
94
  }
95
- } catch (error) {
96
- logger.error({ msg: 'Error converting EditorJS blocks to markdown', error, block });
97
- throw error;
95
+ } catch (err) {
96
+ logger.error({ message: 'Error converting EditorJS blocks to markdown', err, block });
97
+ throw err;
98
98
  }
99
99
  })
100
100
  .join('\n\n');
@@ -152,8 +152,8 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
152
152
  } else {
153
153
  logger.warn({ msg: `Invalid playbook structure in ${file}` });
154
154
  }
155
- } catch (error) {
156
- logger.error({ msg: `Failed to load playbook file ${file}: ${error}` });
155
+ } catch (err) {
156
+ logger.error({ message: `Failed to load playbook file ${file}: ${err}` });
157
157
  }
158
158
  }
159
159
  }
@@ -76,14 +76,13 @@ export async function classify(content: string, config: ClassifierConfig, llm: B
76
76
  const classText = typeof result.content === 'string' ? result.content.trim() : '';
77
77
  return { class: classText };
78
78
  }
79
- } catch (error) {
80
- const errorMessage = error instanceof Error ? error.message : String(error);
81
- logger.error({ message: 'Classification failed, using default', error: errorMessage });
79
+ } catch (err) {
80
+ logger.error({ message: 'Classification failed, using default', err });
82
81
 
83
82
  // Return default classification on error
84
83
  return {
85
84
  class: mergedConfig.defaultClass || 'unknown',
86
- reason: mergedConfig.defaultReason || errorMessage,
85
+ reason: mergedConfig.defaultReason || (err as Error).message,
87
86
  confidence: 0,
88
87
  };
89
88
  }
@@ -204,15 +203,14 @@ const classifierTool: Tool<typeof schema, any> = {
204
203
  },
205
204
  },
206
205
  };
207
- } catch (error) {
208
- const errorMessage = error instanceof Error ? error.message : String(error);
206
+ } catch (err) {
209
207
  logger.error({
210
208
  message: 'Classification failed',
211
209
  sessionId: state.sessionId,
212
- error: errorMessage,
210
+ err,
213
211
  });
214
212
 
215
- throw error;
213
+ throw err;
216
214
  }
217
215
  },
218
216
  };
@@ -258,14 +256,13 @@ ${content}`;
258
256
 
259
257
  // If single result returned, wrap in array
260
258
  return [result as ClassificationResult];
261
- } catch (error) {
262
- const errorMessage = error instanceof Error ? error.message : String(error);
263
- logger.error({ message: 'Multi-classification failed', error: errorMessage });
259
+ } catch (err) {
260
+ logger.error({ message: 'Multi-classification failed', err });
264
261
 
265
262
  return [
266
263
  {
267
264
  class: mergedConfig.defaultClass || 'unknown',
268
- reason: mergedConfig.defaultReason || errorMessage,
265
+ reason: mergedConfig.defaultReason || (err as Error).message,
269
266
  confidence: 0,
270
267
  },
271
268
  ];
@@ -114,18 +114,18 @@ const parseDocumentTool: Tool<typeof schema, any> = {
114
114
  },
115
115
  },
116
116
  };
117
- } catch (error) {
117
+ } catch (err) {
118
118
  logger.error({
119
- msg: 'Failed to parse document',
119
+ message: 'Failed to parse document',
120
120
  sessionId: state.sessionId,
121
- error: error instanceof Error ? error.message : String(error),
121
+ err,
122
122
  });
123
123
 
124
124
  return {
125
- result: `Failed to parse document: ${error instanceof Error ? error.message : String(error)}`,
125
+ result: `Failed to parse document: ${err instanceof Error ? err.message : String(err)}`,
126
126
  state: {
127
127
  memory: {
128
- documentParsingError: error instanceof Error ? error.message : String(error),
128
+ documentParsingError: err instanceof Error ? err.message : String(err),
129
129
  },
130
130
  },
131
131
  };
@@ -45,8 +45,8 @@ export function loadFlowsFromDirectory(flowsDirectories: string[]): Flow[] {
45
45
  }
46
46
 
47
47
  flows.push(parsedFlow);
48
- } catch (error) {
49
- throw new Error(`Failed to parse flow file ${file}: ${error}`);
48
+ } catch (err) {
49
+ throw new Error(`Failed to parse flow file ${file}: ${err}`);
50
50
  }
51
51
  }
52
52
  }
@@ -11,8 +11,8 @@ const extractToolStateResponse = (toolMessage: ToolMessage): Partial<State> => {
11
11
  }
12
12
  return parsed.state;
13
13
  }
14
- } catch (error) {
15
- logger.error({ msg: 'Error parsing tool state response', error });
14
+ } catch (err) {
15
+ logger.error({ message: 'Error parsing tool state response', err });
16
16
  }
17
17
  return {};
18
18
  };
@@ -23,70 +23,72 @@ const constructMessagesFromToolMessage = (messages: any[]): BaseMessage[] => {
23
23
  return [];
24
24
  }
25
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
- }
26
+ return messages
27
+ .map((messageObj) => {
28
+ try {
29
+ // Handle case where message is already a BaseMessage instance
30
+ if (messageObj instanceof BaseMessage) {
31
+ return messageObj;
32
+ }
32
33
 
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 || {};
34
+ // Handle case where message is a plain object that needs reconstruction
35
+ const messageType = messageObj.id[2];
36
+ const content = messageObj.kwargs.content || '';
37
+ const id = messageObj.kwargs.id;
38
+ const additionalKwargs = messageObj.additional_kwargs || {};
38
39
 
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
- });
40
+ switch (messageType) {
41
+ case 'AIMessage':
42
+ return new AIMessage({
43
+ content,
44
+ id,
45
+ additional_kwargs: additionalKwargs,
46
+ tool_calls: messageObj.tool_calls || [],
47
+ invalid_tool_calls: messageObj.invalid_tool_calls || [],
48
+ });
49
+ case 'HumanMessage':
50
+ return new HumanMessage({
51
+ content,
52
+ id,
53
+ additional_kwargs: additionalKwargs,
54
+ });
55
+ case 'SystemMessage':
56
+ return new SystemMessage({
57
+ content,
58
+ id,
59
+ additional_kwargs: additionalKwargs,
60
+ });
61
+ case 'ToolMessage':
62
+ return new ToolMessage({
63
+ content,
64
+ id,
65
+ additional_kwargs: additionalKwargs,
66
+ tool_call_id: messageObj.tool_call_id || '',
67
+ });
67
68
 
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;
69
+ default:
70
+ // Default to HumanMessage for unknown types
71
+ logger.warn({
72
+ msg: 'Unknown message type, defaulting to HumanMessage',
73
+ messageType,
74
+ messageObj,
75
+ });
76
+ return null;
77
+ }
78
+ } catch (err) {
79
+ logger.error({
80
+ msg: 'Error reconstructing message',
81
+ err,
82
+ messageObj,
83
+ });
84
+ // Return a fallback HumanMessage in case of error
85
+ return new HumanMessage({
86
+ content: messageObj.content || 'Error reconstructing message',
87
+ id: messageObj.id,
88
+ });
76
89
  }
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
+ .filter(Boolean) as BaseMessage[];
90
92
  };
91
93
 
92
94
  export default extractToolStateResponse;
@@ -19,4 +19,7 @@ export const logger = pino({
19
19
  return { level: label };
20
20
  },
21
21
  },
22
+ serializers: {
23
+ err: pino.stdSerializers.err,
24
+ },
22
25
  });
@@ -173,8 +173,8 @@ export class VoiceSession {
173
173
  sessionId: this.sessionId,
174
174
  timestamp: Date.now(),
175
175
  });
176
- } catch (error) {
177
- logger.error({ msg: '[Voice] Error sending interruption to dashboard', sessionId: this.sessionId, error });
176
+ } catch (err) {
177
+ logger.error({ message: '[Voice] Error sending interruption to dashboard', sessionId: this.sessionId, err });
178
178
  }
179
179
  }
180
180
  break;
@@ -191,8 +191,8 @@ export class VoiceSession {
191
191
  timestamp: Date.now(),
192
192
  type: mindedConnectionSocketMessageType.VOICE_AGENT_AUDIO,
193
193
  });
194
- } catch (error) {
195
- logger.error({ msg: '[Voice] Error sending audio to dashboard', sessionId: this.sessionId, error });
194
+ } catch (err) {
195
+ logger.error({ message: '[Voice] Error sending audio to dashboard', sessionId: this.sessionId, err });
196
196
  }
197
197
  }
198
198
  break;
@@ -210,8 +210,8 @@ export class VoiceSession {
210
210
  data.agent_response_correction_event.original_agent_response,
211
211
  data.agent_response_correction_event.corrected_agent_response,
212
212
  );
213
- } catch (error) {
214
- logger.error({ msg: '[Voice] Error updating agent response', sessionId: this.sessionId, error });
213
+ } catch (err) {
214
+ logger.error({ message: '[Voice] Error updating agent response', sessionId: this.sessionId, err });
215
215
  }
216
216
  break;
217
217
  default: