@minded-ai/mindedjs 1.0.102 → 1.0.103-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 (170) hide show
  1. package/dist/agent.d.ts +4 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +76 -30
  4. package/dist/agent.js.map +1 -1
  5. package/dist/checkpointer/checkpointSaverFactory.js +1 -1
  6. package/dist/checkpointer/checkpointSaverFactory.js.map +1 -1
  7. package/dist/cli/index.js +12 -12
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/edges/createDirectEdge.d.ts +1 -2
  10. package/dist/edges/createDirectEdge.d.ts.map +1 -1
  11. package/dist/edges/createDirectEdge.js +2 -6
  12. package/dist/edges/createDirectEdge.js.map +1 -1
  13. package/dist/edges/createLogicalRouter.d.ts.map +1 -1
  14. package/dist/edges/createLogicalRouter.js +6 -23
  15. package/dist/edges/createLogicalRouter.js.map +1 -1
  16. package/dist/edges/createPromptRouter.d.ts.map +1 -1
  17. package/dist/edges/createPromptRouter.js +6 -12
  18. package/dist/edges/createPromptRouter.js.map +1 -1
  19. package/dist/edges/edgeFactory.d.ts.map +1 -1
  20. package/dist/edges/edgeFactory.js +3 -8
  21. package/dist/edges/edgeFactory.js.map +1 -1
  22. package/dist/index.d.ts +0 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -6
  25. package/dist/index.js.map +1 -1
  26. package/dist/interrupts/BaseInterruptSessionManager.d.ts +51 -0
  27. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
  28. package/dist/interrupts/BaseInterruptSessionManager.js +39 -0
  29. package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
  30. package/dist/interrupts/InterruptSessionManager.types.d.ts +36 -0
  31. package/dist/interrupts/InterruptSessionManager.types.d.ts.map +1 -0
  32. package/dist/interrupts/InterruptSessionManager.types.js +40 -0
  33. package/dist/interrupts/InterruptSessionManager.types.js.map +1 -0
  34. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
  35. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
  36. package/dist/interrupts/MemoryInterruptSessionManager.js +56 -0
  37. package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
  38. package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
  39. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
  40. package/dist/interrupts/MindedInterruptSessionManager.js +156 -0
  41. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
  42. package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
  43. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
  44. package/dist/interrupts/interruptSessionManagerFactory.js +56 -0
  45. package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
  46. package/dist/llm/createLlmInstance.d.ts +1 -1
  47. package/dist/llm/createLlmInstance.d.ts.map +1 -1
  48. package/dist/llm/createLlmInstance.js +1 -18
  49. package/dist/llm/createLlmInstance.js.map +1 -1
  50. package/dist/nodes/addAppToolNode.d.ts.map +1 -1
  51. package/dist/nodes/addAppToolNode.js +4 -5
  52. package/dist/nodes/addAppToolNode.js.map +1 -1
  53. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  54. package/dist/nodes/addHumanInTheLoopNode.js +3 -2
  55. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  56. package/dist/nodes/addJumpToNode.d.ts.map +1 -1
  57. package/dist/nodes/addJumpToNode.js +1 -2
  58. package/dist/nodes/addJumpToNode.js.map +1 -1
  59. package/dist/nodes/addJunctionNode.d.ts.map +1 -1
  60. package/dist/nodes/addJunctionNode.js +0 -1
  61. package/dist/nodes/addJunctionNode.js.map +1 -1
  62. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  63. package/dist/nodes/addPromptNode.js +61 -7
  64. package/dist/nodes/addPromptNode.js.map +1 -1
  65. package/dist/nodes/addToolNode.js +4 -2
  66. package/dist/nodes/addToolNode.js.map +1 -1
  67. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  68. package/dist/nodes/addToolRunNode.js +2 -2
  69. package/dist/nodes/addToolRunNode.js.map +1 -1
  70. package/dist/nodes/addTriggerNode.d.ts.map +1 -1
  71. package/dist/nodes/addTriggerNode.js +1 -2
  72. package/dist/nodes/addTriggerNode.js.map +1 -1
  73. package/dist/nodes/nodeFactory.d.ts.map +1 -1
  74. package/dist/nodes/nodeFactory.js +0 -4
  75. package/dist/nodes/nodeFactory.js.map +1 -1
  76. package/dist/platform/mindedChatOpenAI.d.ts +5 -0
  77. package/dist/platform/mindedChatOpenAI.d.ts.map +1 -0
  78. package/dist/platform/{models/mindedChatOpenAI.js → mindedChatOpenAI.js} +1 -10
  79. package/dist/platform/mindedChatOpenAI.js.map +1 -0
  80. package/dist/platform/mindedConnection.d.ts.map +1 -1
  81. package/dist/platform/mindedConnection.js +12 -12
  82. package/dist/platform/mindedConnection.js.map +1 -1
  83. package/dist/platform/mindedConnectionTypes.d.ts +151 -1
  84. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  85. package/dist/platform/mindedConnectionTypes.js +9 -0
  86. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  87. package/dist/playbooks/playbooks.js +4 -4
  88. package/dist/playbooks/playbooks.js.map +1 -1
  89. package/dist/types/Agent.types.d.ts +2 -0
  90. package/dist/types/Agent.types.d.ts.map +1 -1
  91. package/dist/types/Agent.types.js.map +1 -1
  92. package/dist/types/Flows.types.d.ts +3 -18
  93. package/dist/types/Flows.types.d.ts.map +1 -1
  94. package/dist/types/Flows.types.js +0 -2
  95. package/dist/types/Flows.types.js.map +1 -1
  96. package/dist/types/LLM.types.d.ts.map +1 -1
  97. package/dist/types/LLM.types.js +1 -1
  98. package/dist/types/LLM.types.js.map +1 -1
  99. package/dist/types/LangGraph.types.d.ts +2 -4
  100. package/dist/types/LangGraph.types.d.ts.map +1 -1
  101. package/dist/types/LangGraph.types.js +2 -5
  102. package/dist/types/LangGraph.types.js.map +1 -1
  103. package/dist/utils/logger.d.ts.map +1 -1
  104. package/dist/utils/logger.js +2 -1
  105. package/dist/utils/logger.js.map +1 -1
  106. package/dist/voice/voiceSession.d.ts.map +1 -1
  107. package/dist/voice/voiceSession.js +17 -16
  108. package/dist/voice/voiceSession.js.map +1 -1
  109. package/docs/SUMMARY.md +0 -1
  110. package/docs/getting-started/installation.md +0 -42
  111. package/docs/low-code-editor/nodes.md +0 -27
  112. package/docs/low-code-editor/tools.md +0 -32
  113. package/package.json +2 -3
  114. package/src/agent.ts +93 -32
  115. package/src/checkpointer/checkpointSaverFactory.ts +1 -1
  116. package/src/cli/index.ts +12 -12
  117. package/src/edges/createDirectEdge.ts +2 -7
  118. package/src/edges/createLogicalRouter.ts +6 -23
  119. package/src/edges/createPromptRouter.ts +6 -13
  120. package/src/edges/edgeFactory.ts +4 -20
  121. package/src/index.ts +0 -6
  122. package/src/interrupts/BaseInterruptSessionManager.ts +94 -0
  123. package/src/interrupts/MemoryInterruptSessionManager.ts +57 -0
  124. package/src/interrupts/MindedInterruptSessionManager.ts +155 -0
  125. package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
  126. package/src/llm/createLlmInstance.ts +2 -25
  127. package/src/nodes/addAppToolNode.ts +4 -5
  128. package/src/nodes/addHumanInTheLoopNode.ts +3 -3
  129. package/src/nodes/addJumpToNode.ts +1 -2
  130. package/src/nodes/addJunctionNode.ts +0 -1
  131. package/src/nodes/addPromptNode.ts +65 -10
  132. package/src/nodes/addToolNode.ts +4 -4
  133. package/src/nodes/addToolRunNode.ts +2 -4
  134. package/src/nodes/addTriggerNode.ts +1 -2
  135. package/src/nodes/nodeFactory.ts +1 -5
  136. package/src/platform/mindedChatOpenAI.ts +19 -0
  137. package/src/platform/mindedConnection.ts +15 -25
  138. package/src/platform/mindedConnectionTypes.ts +188 -1
  139. package/src/playbooks/playbooks.ts +4 -4
  140. package/src/types/Agent.types.ts +2 -0
  141. package/src/types/Flows.types.ts +1 -17
  142. package/src/types/LLM.types.ts +5 -5
  143. package/src/types/LangGraph.types.ts +2 -5
  144. package/src/utils/logger.ts +2 -1
  145. package/src/voice/voiceSession.ts +17 -16
  146. package/dist/browserTask/executeBrowserTask.d.ts +0 -12
  147. package/dist/browserTask/executeBrowserTask.d.ts.map +0 -1
  148. package/dist/browserTask/executeBrowserTask.js +0 -181
  149. package/dist/browserTask/executeBrowserTask.js.map +0 -1
  150. package/dist/nodes/addBrowserTaskNode.d.ts +0 -13
  151. package/dist/nodes/addBrowserTaskNode.d.ts.map +0 -1
  152. package/dist/nodes/addBrowserTaskNode.js +0 -230
  153. package/dist/nodes/addBrowserTaskNode.js.map +0 -1
  154. package/dist/nodes/addBrowserTaskRunNode.d.ts +0 -13
  155. package/dist/nodes/addBrowserTaskRunNode.d.ts.map +0 -1
  156. package/dist/nodes/addBrowserTaskRunNode.js +0 -126
  157. package/dist/nodes/addBrowserTaskRunNode.js.map +0 -1
  158. package/dist/platform/models/mindedChatOpenAI.d.ts +0 -20
  159. package/dist/platform/models/mindedChatOpenAI.d.ts.map +0 -1
  160. package/dist/platform/models/mindedChatOpenAI.js.map +0 -1
  161. package/dist/platform/models/parallelWrapper.d.ts +0 -17
  162. package/dist/platform/models/parallelWrapper.d.ts.map +0 -1
  163. package/dist/platform/models/parallelWrapper.js +0 -105
  164. package/dist/platform/models/parallelWrapper.js.map +0 -1
  165. package/docs/platform/parallel-llm.md +0 -242
  166. package/src/browserTask/executeBrowserTask.ts +0 -213
  167. package/src/nodes/addBrowserTaskNode.ts +0 -229
  168. package/src/nodes/addBrowserTaskRunNode.ts +0 -142
  169. package/src/platform/models/mindedChatOpenAI.ts +0 -49
  170. package/src/platform/models/parallelWrapper.ts +0 -141
@@ -0,0 +1,19 @@
1
+ import { ChatOpenAI, ChatOpenAIFields } from "@langchain/openai";
2
+ import { getConfig } from "./config";
3
+
4
+ export class MindedChatOpenAI extends ChatOpenAI {
5
+ constructor(fields?: ChatOpenAIFields) {
6
+ const { token, baseUrl } = getConfig();
7
+ const mindedBaseUrl = `${baseUrl}/sdk/llmGateway/chatOpenAI`;
8
+ if (!token) {
9
+ throw new Error('Minded token not found');
10
+ }
11
+ super({
12
+ ...fields,
13
+ apiKey: token,
14
+ configuration: {
15
+ baseURL: mindedBaseUrl,
16
+ },
17
+ });
18
+ }
19
+ }
@@ -1,8 +1,5 @@
1
1
  import { io, Socket } from 'socket.io-client';
2
- import {
3
- mindedConnectionSocketMessageType,
4
- mindedConnectionSocketMessageTypeMap,
5
- } from './mindedConnectionTypes';
2
+ import { mindedConnectionSocketMessageType, mindedConnectionSocketMessageTypeMap } from './mindedConnectionTypes';
6
3
  import { stringify } from 'flatted';
7
4
  import { getConfig } from './config';
8
5
  import { logger } from '../utils/logger';
@@ -28,20 +25,13 @@ export const on = <E extends keyof mindedConnectionSocketMessageTypeMap>(
28
25
  listeners[event].push(callback);
29
26
  };
30
27
 
31
- export const emit = <E extends keyof mindedConnectionSocketMessageTypeMap>(
32
- event: E,
33
- message: mindedConnectionSocketMessageTypeMap[E]
34
- ) => {
28
+ export const emit = <E extends keyof mindedConnectionSocketMessageTypeMap>(event: E, message: mindedConnectionSocketMessageTypeMap[E]) => {
35
29
  if (socket) {
36
30
  socket.emit(event, message);
37
31
  }
38
32
  };
39
33
 
40
- export const awaitEmit = async <T, R>(
41
- event: mindedConnectionSocketMessageType,
42
- message: T,
43
- timeoutMs: number = 5000
44
- ): Promise<R> => {
34
+ export const awaitEmit = async <T, R>(event: mindedConnectionSocketMessageType, message: T, timeoutMs: number = 5000): Promise<R> => {
45
35
  if (!socket) {
46
36
  throw new Error('Socket is not connected');
47
37
  }
@@ -97,43 +87,43 @@ const connect = async (token: string): Promise<void> => {
97
87
 
98
88
  const checkReady = () => {
99
89
  if (connected && ready) {
100
- logger.info('\x1b[32mConnection with Minded platform is ready!\x1b[0m');
101
- logger.info('\x1b[32mPress Ctrl+C to exit...');
90
+ logger.info({ message: '\x1b[32mConnection with Minded platform is ready!\x1b[0m' });
91
+ logger.info({ message: '\x1b[32mPress Ctrl+C to exit...' });
102
92
  resolve();
103
93
  }
104
94
  };
105
95
 
106
96
  // Connection event handlers
107
97
  socket.on('connect', () => {
108
- logger.info('Socket connected, waiting for server setup...');
98
+ logger.info({ message: 'Socket connected, waiting for server setup...' });
109
99
  connected = true;
110
100
  checkReady();
111
101
  });
112
102
 
113
103
  // Listen for ready event from server
114
104
  socket.on('sdk-socket-ready', (data: { agentId: string; orgName: string }) => {
115
- logger.info('Server ready signal received', data);
105
+ logger.info({ message: 'Server ready signal received', data });
116
106
  ready = true;
117
107
  checkReady();
118
108
  });
119
109
 
120
110
  socket.on('connect_error', () => {
121
- logger.error('Failed to connect to minded platform');
111
+ logger.error({ message: 'Failed to connect to minded platform' });
122
112
  reject(new Error('Failed to connect to minded platform'));
123
113
  });
124
114
 
125
115
  socket.on('disconnect', () => {
126
- logger.info('Disconnected from local debugging socket');
116
+ logger.info({ message: 'Disconnected from local debugging socket' });
127
117
  connected = false;
128
118
  ready = false;
129
119
  });
130
120
 
131
121
  // Listen for error messages from the server
132
122
  socket.on('error', async (error: { message: string }) => {
133
- logger.error({ msg: 'Server error:', error });
123
+ logger.error({ message: 'Server error:', error });
134
124
 
135
125
  if (error.message.includes('Invalid token')) {
136
- logger.info('Invalid token');
126
+ logger.info({ message: 'Invalid token' });
137
127
 
138
128
  // Disconnect current socket
139
129
  if (socket?.connected) {
@@ -159,7 +149,7 @@ const connect = async (token: string): Promise<void> => {
159
149
  // Handle process termination
160
150
  process.on('SIGINT', () => {
161
151
  if (socket?.connected) {
162
- logger.info('\nDisconnecting...');
152
+ logger.info({ message: '\nDisconnecting...' });
163
153
  socket.disconnect();
164
154
  }
165
155
  process.exit(0);
@@ -177,17 +167,17 @@ export const start = async (): Promise<void> => {
177
167
 
178
168
  export const disconnect = () => {
179
169
  if (!socket) {
180
- logger.warn('No socket connection to disconnect');
170
+ logger.warn({ message: 'No socket connection to disconnect' });
181
171
  return;
182
172
  }
183
173
 
184
174
  if (socket.connected) {
185
- logger.info('Disconnecting from Minded platform...');
175
+ logger.info({ message: 'Disconnecting from Minded platform...' });
186
176
  socket.disconnect();
187
177
  return;
188
178
  }
189
179
 
190
- logger.warn('Socket is already disconnected');
180
+ logger.warn({ message: 'Socket is already disconnected' });
191
181
  };
192
182
 
193
183
  export const mindedConnection = {
@@ -33,6 +33,15 @@ export enum mindedConnectionSocketMessageType {
33
33
  TIMER_RESET = 'timer-reset',
34
34
  TIMER_CANCEL = 'timer-cancel',
35
35
  TIMER_TRIGGER = 'timer-trigger',
36
+ // Interrupt Session Management
37
+ INTERRUPT_SESSION_IS_PROCESSED = 'interrupt-session-is-processed',
38
+ INTERRUPT_SESSION_LOCK = 'interrupt-session-lock',
39
+ INTERRUPT_SESSION_RELEASE = 'interrupt-session-release',
40
+ INTERRUPT_SESSION_ENQUEUE = 'interrupt-session-enqueue',
41
+ INTERRUPT_SESSION_DEQUEUE_ALL = 'interrupt-session-dequeue-all',
42
+ INTERRUPT_SESSION_DEQUEUE = 'interrupt-session-dequeue',
43
+ INTERRUPT_SESSION_HAS_MESSAGES = 'interrupt-session-has-messages',
44
+ INTERRUPT_SESSION_GET_MESSAGES = 'interrupt-session-get-messages',
36
45
  }
37
46
 
38
47
  export type mindedConnectionSocketMessageTypeMap = {
@@ -57,6 +66,15 @@ export type mindedConnectionSocketMessageTypeMap = {
57
66
  [mindedConnectionSocketMessageType.TIMER_CANCEL]: TimerCancelRequest;
58
67
  [mindedConnectionSocketMessageType.TIMER_TRIGGER]: TimerTriggerRequest;
59
68
  [mindedConnectionSocketMessageType.RESTORE_CHECKPOINT]: RestoreCheckpointRequest;
69
+ // Interrupt Session Management
70
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED]: InterruptSessionIsProcessedRequest;
71
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK]: InterruptSessionLockRequest;
72
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE]: InterruptSessionReleaseRequest;
73
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE]: InterruptSessionEnqueueRequest;
74
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL]: InterruptSessionDequeueAllRequest;
75
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE]: InterruptSessionDequeueRequest;
76
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES]: InterruptSessionHasMessagesRequest;
77
+ [mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES]: InterruptSessionGetMessagesRequest;
60
78
  };
61
79
 
62
80
  export interface BasemindedConnectionSocketMessage {
@@ -181,6 +199,166 @@ export interface TimerTriggerRequest extends BasemindedConnectionSocketMessage {
181
199
  eventArgs: Record<string, any>;
182
200
  }
183
201
 
202
+ // Interrupt Session Management Interfaces
203
+ export interface InterruptSessionIsProcessedRequest extends BasemindedConnectionSocketMessage {
204
+ sessionId: string;
205
+ }
206
+
207
+ export interface InterruptSessionIsProcessedResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
208
+ isProcessed?: boolean;
209
+ }
210
+
211
+ export interface InterruptSessionLockRequest extends BasemindedConnectionSocketMessage {
212
+ sessionId: string;
213
+ }
214
+
215
+ export interface InterruptSessionLockResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
216
+ lockAcquired?: boolean;
217
+ }
218
+
219
+ export interface InterruptSessionReleaseRequest extends BasemindedConnectionSocketMessage {
220
+ sessionId: string;
221
+ }
222
+
223
+ export interface InterruptSessionReleaseResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
224
+ success?: boolean;
225
+ }
226
+
227
+ export interface InterruptSessionEnqueueRequest extends BasemindedConnectionSocketMessage {
228
+ sessionId: string;
229
+ message: {
230
+ triggerBody: any;
231
+ triggerName: string;
232
+ appName?: string;
233
+ };
234
+ }
235
+
236
+ export interface InterruptSessionEnqueueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
237
+ success?: boolean;
238
+ }
239
+
240
+ export interface InterruptSessionDequeueAllRequest extends BasemindedConnectionSocketMessage {
241
+ sessionId: string;
242
+ }
243
+
244
+ export interface InterruptSessionDequeueAllResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
245
+ messages?: Array<{
246
+ triggerBody: any;
247
+ triggerName: string;
248
+ appName?: string;
249
+ }>;
250
+ }
251
+
252
+ export interface InterruptSessionDequeueRequest extends BasemindedConnectionSocketMessage {
253
+ sessionId: string;
254
+ }
255
+
256
+ export interface InterruptSessionDequeueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
257
+ message?: {
258
+ triggerBody: any;
259
+ triggerName: string;
260
+ appName?: string;
261
+ } | null;
262
+ }
263
+
264
+ export interface InterruptSessionHasMessagesRequest extends BasemindedConnectionSocketMessage {
265
+ sessionId: string;
266
+ }
267
+
268
+ export interface InterruptSessionHasMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
269
+ hasMessages?: boolean;
270
+ }
271
+
272
+ export interface InterruptSessionGetMessagesRequest extends BasemindedConnectionSocketMessage {
273
+ sessionId: string;
274
+ }
275
+
276
+ export interface InterruptSessionGetMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
277
+ messages?: Array<{
278
+ triggerBody: any;
279
+ triggerName: string;
280
+ appName?: string;
281
+ }>;
282
+ }
283
+
284
+ // Interrupt Session Management Interfaces
285
+ export interface InterruptSessionIsProcessedRequest extends BasemindedConnectionSocketMessage {
286
+ sessionId: string;
287
+ }
288
+
289
+ export interface InterruptSessionIsProcessedResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
290
+ isProcessed?: boolean;
291
+ }
292
+
293
+ export interface InterruptSessionLockRequest extends BasemindedConnectionSocketMessage {
294
+ sessionId: string;
295
+ }
296
+
297
+ export interface InterruptSessionReleaseRequest extends BasemindedConnectionSocketMessage {
298
+ sessionId: string;
299
+ }
300
+
301
+ export interface InterruptSessionReleaseResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
302
+ success?: boolean;
303
+ }
304
+
305
+ export interface InterruptSessionEnqueueRequest extends BasemindedConnectionSocketMessage {
306
+ sessionId: string;
307
+ message: {
308
+ triggerBody: any;
309
+ triggerName: string;
310
+ appName?: string;
311
+ };
312
+ }
313
+
314
+ export interface InterruptSessionEnqueueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
315
+ success?: boolean;
316
+ }
317
+
318
+ export interface InterruptSessionDequeueAllRequest extends BasemindedConnectionSocketMessage {
319
+ sessionId: string;
320
+ }
321
+
322
+ export interface InterruptSessionDequeueAllResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
323
+ messages?: Array<{
324
+ triggerBody: any;
325
+ triggerName: string;
326
+ appName?: string;
327
+ }>;
328
+ }
329
+
330
+ export interface InterruptSessionDequeueRequest extends BasemindedConnectionSocketMessage {
331
+ sessionId: string;
332
+ }
333
+
334
+ export interface InterruptSessionDequeueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
335
+ message?: {
336
+ triggerBody: any;
337
+ triggerName: string;
338
+ appName?: string;
339
+ } | null;
340
+ }
341
+
342
+ export interface InterruptSessionHasMessagesRequest extends BasemindedConnectionSocketMessage {
343
+ sessionId: string;
344
+ }
345
+
346
+ export interface InterruptSessionHasMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
347
+ hasMessages?: boolean;
348
+ }
349
+
350
+ export interface InterruptSessionGetMessagesRequest extends BasemindedConnectionSocketMessage {
351
+ sessionId: string;
352
+ }
353
+
354
+ export interface InterruptSessionGetMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
355
+ messages?: Array<{
356
+ triggerBody: any;
357
+ triggerName: string;
358
+ appName?: string;
359
+ }>;
360
+ }
361
+
184
362
  export interface RestoreCheckpointRequest extends BasemindedConnectionSocketMessage {
185
363
  sessionId: string;
186
364
  checkpointId: string;
@@ -188,4 +366,13 @@ export interface RestoreCheckpointRequest extends BasemindedConnectionSocketMess
188
366
 
189
367
  export interface RestoreCheckpointResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
190
368
  success?: boolean;
191
- }
369
+ }
370
+
371
+ export interface RestoreCheckpointRequest extends BasemindedConnectionSocketMessage {
372
+ sessionId: string;
373
+ checkpointId: string;
374
+ }
375
+
376
+ export interface RestoreCheckpointResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
377
+ success?: boolean;
378
+ }
@@ -113,7 +113,7 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
113
113
 
114
114
  for (const directory of directories) {
115
115
  if (!fs.existsSync(directory)) {
116
- logger.info(`Playbooks directory does not exist: ${directory}`);
116
+ logger.info({ message: `Playbooks directory does not exist: ${directory}` });
117
117
  continue;
118
118
  }
119
119
 
@@ -126,12 +126,12 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
126
126
 
127
127
  if (playbook && playbook.name && playbook.blocks) {
128
128
  playbooks.push(playbook);
129
- logger.info(`Loaded playbook: ${playbook.name} from ${file}`);
129
+ logger.info({ message: `Loaded playbook: ${playbook.name} from ${file}` });
130
130
  } else {
131
- logger.warn(`Invalid playbook structure in ${file}`);
131
+ logger.warn({ message: `Invalid playbook structure in ${file}` });
132
132
  }
133
133
  } catch (error) {
134
- logger.error(`Failed to load playbook file ${file}: ${error}`);
134
+ logger.error({ message: `Failed to load playbook file ${file}: ${error}` });
135
135
  }
136
136
  }
137
137
  }
@@ -29,6 +29,8 @@ export interface AgentInvokeParams {
29
29
  sessionId?: string;
30
30
  /** Optional name of the application triggering the agent in case of an app trigger */
31
31
  appName?: string;
32
+ /** Internal flag to bypass session processing check for recursive calls */
33
+ bypassSessionCheck?: boolean;
32
34
  }
33
35
  export interface HistoryStep {
34
36
  type: NodeType;
@@ -11,7 +11,6 @@ export enum NodeType {
11
11
  APP_TOOL = 'appTool',
12
12
  PROMPT_NODE = 'promptNode',
13
13
  JUMP_TO_NODE = 'jumpToNode',
14
- BROWSER_TASK = 'browserTask',
15
14
  }
16
15
 
17
16
  export enum EdgeType {
@@ -59,8 +58,6 @@ export interface AppTriggerNode extends BaseTriggerNode, BaseAppNode {
59
58
 
60
59
  export interface WebhookTriggerNode extends BaseTriggerNode {
61
60
  triggerType: TriggerType.WEBHOOK;
62
- autoTrigger?: boolean;
63
- defaultPayload?: string;
64
61
  }
65
62
 
66
63
  export interface VoiceTriggerNode extends BaseTriggerNode {
@@ -90,18 +87,6 @@ export interface JumpToNode extends BaseNode {
90
87
  targetNodeId: string;
91
88
  }
92
89
 
93
- export interface BrowserTaskNode extends BaseNode {
94
- type: NodeType.BROWSER_TASK;
95
- prompt: string;
96
- model?: string;
97
- inputSchema?: {
98
- name: string;
99
- type: 'string' | 'number';
100
- description?: string;
101
- required?: boolean;
102
- }[];
103
- }
104
-
105
90
  export type TriggerNode = AppTriggerNode | WebhookTriggerNode | ManualTriggerNode | VoiceTriggerNode;
106
91
 
107
92
  export interface JunctionNode extends BaseNode {
@@ -124,7 +109,7 @@ export interface AppToolNode extends BaseNode, BaseAppNode {
124
109
  actionKey: string;
125
110
  }
126
111
 
127
- export type Node = TriggerNode | JunctionNode | ToolNode | AppToolNode | PromptNode | JumpToNode | BrowserTaskNode;
112
+ export type Node = TriggerNode | JunctionNode | ToolNode | AppToolNode | PromptNode | JumpToNode;
128
113
 
129
114
  export interface BaseEdge {
130
115
  source: string;
@@ -196,5 +181,4 @@ export enum KnownTriggerNames {
196
181
  export enum internalNodesSuffix {
197
182
  HUMAN_IN_THE_LOOP = '_humanInTheLoop',
198
183
  TOOL_RUN = '_toolRun',
199
- BROWSER_TASK_RUN = '_browserTaskRun',
200
184
  }
@@ -1,10 +1,10 @@
1
1
  import { AzureChatOpenAI, ChatOpenAI } from '@langchain/openai';
2
- import { MindedChatOpenAI } from '../platform/models/mindedChatOpenAI';
2
+ import { MindedChatOpenAI } from '../platform/mindedChatOpenAI';
3
3
 
4
4
  export type LLMConfig = {
5
- name: string;
6
- properties: Record<string, any>;
7
- };
5
+ name: string,
6
+ properties: Record<string, any>
7
+ }
8
8
 
9
9
  export type LLMProvider = 'ChatOpenAI' | 'AzureChatOpenAI' | 'MindedChatOpenAI';
10
10
 
@@ -12,4 +12,4 @@ export const LLMProviders: Record<LLMProvider, any> = {
12
12
  ChatOpenAI: ChatOpenAI,
13
13
  AzureChatOpenAI: AzureChatOpenAI,
14
14
  MindedChatOpenAI,
15
- };
15
+ }
@@ -13,7 +13,6 @@ export const createStateAnnotation = <Memory = any>() =>
13
13
  const index = res.findIndex((m) => m.id && m.id === message.id);
14
14
  if (index !== -1) {
15
15
  res[index].content = message.content;
16
- res[index].additional_kwargs = { ...res[index].additional_kwargs, ...message.additional_kwargs };
17
16
  }
18
17
  } else {
19
18
  res.push(message);
@@ -30,10 +29,8 @@ export const createStateAnnotation = <Memory = any>() =>
30
29
  default: () => [],
31
30
  reducer: (a, b) => a.concat(b),
32
31
  }),
33
- sessionId: Annotation<string>(),
34
- goto: Annotation<string | null | undefined>({
35
- default: () => null,
36
- reducer: (a, b) => b,
32
+ sessionId: Annotation<string>({
33
+ reducer: (a, b) => b || a,
37
34
  }),
38
35
  sessionType: Annotation<SessionType>({
39
36
  default: () => SessionType.TEXT,
@@ -4,7 +4,7 @@ dotenv.config();
4
4
 
5
5
  // Create a Pino logger with a custom log format
6
6
  export const logger = pino({
7
- level: process.env.LOG_LEVEL || 'trace',
7
+ level: process.env.LOG_LEVEL || 'info',
8
8
  base: null,
9
9
  transport: {
10
10
  target: 'pino-pretty',
@@ -12,6 +12,7 @@ export const logger = pino({
12
12
  colorize: true,
13
13
  crlf: true,
14
14
  translateTime: 'SYS:standard',
15
+ messageKey: 'message', // Use 'message' instead of default 'msg'
15
16
  },
16
17
  },
17
18
  formatters: {
@@ -25,7 +25,7 @@ export class VoiceSession {
25
25
  private onDisconnectCallback?: () => void;
26
26
 
27
27
  constructor({ agent, sessionId, firstMessage, voiceId }: { agent: Agent; sessionId: string; firstMessage: string; voiceId?: string }) {
28
- logger.debug({ msg: '[Voice] Starting voice session', sessionId, firstMessage, voiceId });
28
+ logger.debug({ message: 'Starting voice session', sessionId, firstMessage, voiceId });
29
29
  this.agent = agent;
30
30
  this.sessionId = sessionId;
31
31
  this.firstMessage = firstMessage;
@@ -51,6 +51,7 @@ export class VoiceSession {
51
51
  apiKey: elevenLabsKey,
52
52
  });
53
53
 
54
+ logger.debug({ message: 'Connecting to ElevenLabs', sessionId: this.sessionId });
54
55
  this.elevenLabsSocket = new WebSocket(signedUrl);
55
56
  this.setupSocketHandlers();
56
57
  }
@@ -89,7 +90,7 @@ export class VoiceSession {
89
90
  const socket = this.elevenLabsSocket!; // non-null assertion once, we ensured it's assigned in init()
90
91
 
91
92
  socket.onopen = () => {
92
- logger.debug({ msg: '[Voice] Connected to ElevenLabs', sessionId: this.sessionId });
93
+ logger.debug({ message: 'Connected to ElevenLabs', sessionId: this.sessionId });
93
94
  const initiationData: ConversationInitiationClientData = {
94
95
  type: 'conversation_initiation_client_data',
95
96
  conversation_config_override: {
@@ -115,13 +116,13 @@ export class VoiceSession {
115
116
  };
116
117
 
117
118
  socket.onclose = () => {
118
- logger.debug({ msg: '[Voice] Disconnected from ElevenLabs, removing voice session', sessionId: this.sessionId });
119
+ logger.debug({ message: 'Disconnected from ElevenLabs, removing voice session', sessionId: this.sessionId });
119
120
  this.onDisconnectCallback?.();
120
121
  this.agent.voiceSessions.delete(this.sessionId);
121
122
  };
122
123
 
123
124
  socket.onerror = (err: unknown) => {
124
- logger.error({ msg: '[Voice] socket error', sessionId: this.sessionId, error: err });
125
+ logger.error({ message: '[ElevenLabsVoice] socket error', sessionId: this.sessionId, error: err });
125
126
  };
126
127
 
127
128
  socket.onmessage = async (event: any) => {
@@ -135,7 +136,7 @@ export class VoiceSession {
135
136
  break;
136
137
  case 'user_transcript':
137
138
  logger.debug({
138
- msg: '[Voice] Received user transcript',
139
+ message: 'User transcript received',
139
140
  sessionId: this.sessionId,
140
141
  data: data.user_transcription_event.user_transcript,
141
142
  });
@@ -147,7 +148,6 @@ export class VoiceSession {
147
148
  }
148
149
  break;
149
150
  case 'agent_response':
150
- logger.debug({ msg: '[Voice] Received agent response' });
151
151
  if (this.onMessageCallback) {
152
152
  this.onMessageCallback(
153
153
  data.agent_response_event.agent_response,
@@ -156,7 +156,7 @@ export class VoiceSession {
156
156
  }
157
157
  break;
158
158
  case 'interruption':
159
- logger.debug({ msg: '[Voice] Received interruption' });
159
+ logger.debug('Interruption received');
160
160
  this.onInterruptionCallback?.();
161
161
  // Send interruption event to dashboard if connected
162
162
  if (getConfig().dashboardConnected) {
@@ -167,12 +167,12 @@ export class VoiceSession {
167
167
  timestamp: Date.now(),
168
168
  });
169
169
  } catch (error) {
170
- logger.error({ msg: '[Voice] Error sending interruption to dashboard', sessionId: this.sessionId, error });
170
+ logger.error({ message: '[ElevenLabsVoice] Error sending interruption to dashboard', sessionId: this.sessionId, error });
171
171
  }
172
172
  }
173
173
  break;
174
174
  case 'audio':
175
- logger.debug({ msg: '[Voice] Received audio response to user', sessionId: this.sessionId });
175
+ logger.debug({ message: 'Agent audio received', sessionId: this.sessionId });
176
176
  if (this.onAudioCallback) {
177
177
  this.onAudioCallback(data.audio_event.audio_base_64);
178
178
  }
@@ -185,17 +185,17 @@ export class VoiceSession {
185
185
  type: mindedConnectionSocketMessageType.DASHBOARD_VOICE_AGENT_AUDIO,
186
186
  });
187
187
  } catch (error) {
188
- logger.error({ msg: '[Voice] Error sending audio to dashboard', sessionId: this.sessionId, error });
188
+ logger.error(`[ElevenLabsVoice] Error sending audio to dashboard: ${error}`);
189
189
  }
190
190
  }
191
191
  break;
192
192
  case 'conversation_initiation_metadata':
193
- logger.trace({ msg: '[Voice] ElevenLabs conversation initiation metadata', sessionId: this.sessionId, data });
193
+ logger.debug({ message: 'ElevenLabs conversation initiation metadata', sessionId: this.sessionId, data });
194
194
  break;
195
195
  case 'agent_response_correction':
196
196
  try {
197
197
  logger.debug({
198
- msg: '[Voice] Received agent response correction',
198
+ message: 'Agent response correction received',
199
199
  sessionId: this.sessionId,
200
200
  data: data.agent_response_correction_event,
201
201
  });
@@ -204,17 +204,18 @@ export class VoiceSession {
204
204
  data.agent_response_correction_event.corrected_agent_response,
205
205
  );
206
206
  } catch (error) {
207
- logger.error({ msg: '[Voice] Error updating agent response', sessionId: this.sessionId, error });
207
+ logger.error({ message: '[ElevenLabsVoice] Error updating agent response', sessionId: this.sessionId, error });
208
208
  }
209
209
  break;
210
210
  default:
211
- logger.debug({ msg: '[Voice] Received unknown message from ElevenLabs', sessionId: this.sessionId, data });
211
+ logger.debug({ message: 'Received unknown message from ElevenLabs', sessionId: this.sessionId, data });
212
212
  break;
213
213
  }
214
214
  };
215
215
  }
216
216
 
217
217
  private async addFirstMessageToState(): Promise<void> {
218
+ logger.debug({ message: 'Adding first message to state', sessionId: this.sessionId, firstMessage: this.firstMessage });
218
219
  const graphState = await this.agent.compiledGraph.getState(this.agent.getLangraphConfig(this.sessionId));
219
220
  if (!graphState.values.messages?.length) {
220
221
  await this.agent.compiledGraph.updateState(this.agent.getLangraphConfig(this.sessionId), {
@@ -239,12 +240,12 @@ export class VoiceSession {
239
240
  overrideStartFromNodeId: currentNodeId,
240
241
  });
241
242
  } else {
242
- logger.warn({ msg: '[Voice] Agent message not found for correction', sessionId: this.sessionId, originalAgentResponse });
243
+ logger.warn({ message: 'Agent message not found for correction', sessionId: this.sessionId, originalAgentResponse });
243
244
  }
244
245
  }
245
246
 
246
247
  public hangup(): void {
247
- logger.info({ msg: '[Voice] Hanging up voice session', sessionId: this.sessionId });
248
+ logger.info({ message: 'Hanging up voice session', sessionId: this.sessionId });
248
249
  this.onDisconnectCallback?.();
249
250
  this.elevenLabsSocket?.close();
250
251
  }
@@ -1,12 +0,0 @@
1
- export interface CloudTaskResponse {
2
- id: string;
3
- status: string;
4
- live_url?: string;
5
- steps?: any[];
6
- output?: string;
7
- }
8
- export declare const createCloudTask: (prompt: string, model?: string) => Promise<string>;
9
- export declare const getTaskDetails: (taskId: string) => Promise<CloudTaskResponse>;
10
- export declare const waitForLiveUrl: (taskId: string, maxWaitTime?: number) => Promise<CloudTaskResponse>;
11
- export declare const waitForCompletion: (taskId: string, maxWaitTime?: number) => Promise<CloudTaskResponse>;
12
- //# sourceMappingURL=executeBrowserTask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeBrowserTask.d.ts","sourceRoot":"","sources":["../../src/browserTask/executeBrowserTask.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CA6BpF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAkB9E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,QAAQ,MAAM,EAAE,cAAa,MAAc,KAAG,OAAO,CAAC,iBAAiB,CAsE3G,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,QAAQ,MAAM,EAAE,cAAa,MAAe,KAAG,OAAO,CAAC,iBAAiB,CA0E/G,CAAC"}