@minded-ai/mindedjs 1.0.122-beta-1 → 1.0.122-beta.2

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 (145) hide show
  1. package/dist/agent.d.ts +1 -4
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +30 -76
  4. package/dist/agent.js.map +1 -1
  5. package/dist/browserTask/executeBrowserTask.d.ts.map +1 -1
  6. package/dist/checkpointer/checkpointSaverFactory.js +17 -7
  7. package/dist/checkpointer/checkpointSaverFactory.js.map +1 -1
  8. package/dist/cli/index.js +31 -21
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/lambdaHandlerTemplate.d.ts.map +1 -1
  11. package/dist/edges/createDirectEdge.d.ts.map +1 -1
  12. package/dist/edges/createLogicalRouter.d.ts.map +1 -1
  13. package/dist/edges/createLogicalRouter.js +17 -7
  14. package/dist/edges/createLogicalRouter.js.map +1 -1
  15. package/dist/edges/createPromptRouter.d.ts.map +1 -1
  16. package/dist/edges/edgeFactory.d.ts.map +1 -1
  17. package/dist/edges/edgeFactory.js +2 -2
  18. package/dist/edges/edgeFactory.js.map +1 -1
  19. package/dist/guidelines/guidelinesManager.d.ts +37 -0
  20. package/dist/guidelines/guidelinesManager.d.ts.map +1 -0
  21. package/dist/guidelines/guidelinesManager.js +172 -0
  22. package/dist/guidelines/guidelinesManager.js.map +1 -0
  23. package/dist/index.js +17 -7
  24. package/dist/index.js.map +1 -1
  25. package/dist/interfaces/zendesk.js +17 -7
  26. package/dist/interfaces/zendesk.js.map +1 -1
  27. package/dist/internalTools/appActionRunnerTool.d.ts.map +1 -1
  28. package/dist/internalTools/appActionRunnerTool.js +17 -7
  29. package/dist/internalTools/appActionRunnerTool.js.map +1 -1
  30. package/dist/internalTools/documentExtraction/documentExtraction.js +17 -7
  31. package/dist/internalTools/documentExtraction/documentExtraction.js.map +1 -1
  32. package/dist/internalTools/libraryActionRunnerTool.d.ts.map +1 -1
  33. package/dist/internalTools/timer.js +17 -7
  34. package/dist/internalTools/timer.js.map +1 -1
  35. package/dist/internalTools/voice/escalateVoiceCall.d.ts.map +1 -1
  36. package/dist/internalTools/voice/escalateVoiceCall.js +17 -7
  37. package/dist/internalTools/voice/escalateVoiceCall.js.map +1 -1
  38. package/dist/internalTools/voice/retell.js +17 -7
  39. package/dist/internalTools/voice/retell.js.map +1 -1
  40. package/dist/internalTools/voice/sendPlaceholderMessage.js +17 -7
  41. package/dist/internalTools/voice/sendPlaceholderMessage.js.map +1 -1
  42. package/dist/llm/createLlmInstance.d.ts.map +1 -1
  43. package/dist/nodes/addAppToolNode.d.ts.map +1 -1
  44. package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -1
  45. package/dist/nodes/addBrowserTaskRunNode.d.ts.map +1 -1
  46. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  47. package/dist/nodes/addHumanInTheLoopNode.js +1 -2
  48. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  49. package/dist/nodes/addJumpToNode.d.ts.map +1 -1
  50. package/dist/nodes/addJumpToNode.js +1 -1
  51. package/dist/nodes/addJumpToNode.js.map +1 -1
  52. package/dist/nodes/addJunctionNode.d.ts.map +1 -1
  53. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  54. package/dist/nodes/addPromptNode.js +1 -43
  55. package/dist/nodes/addPromptNode.js.map +1 -1
  56. package/dist/nodes/addToolNode.d.ts.map +1 -1
  57. package/dist/nodes/addToolNode.js +0 -2
  58. package/dist/nodes/addToolNode.js.map +1 -1
  59. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  60. package/dist/nodes/addToolRunNode.js +0 -1
  61. package/dist/nodes/addToolRunNode.js.map +1 -1
  62. package/dist/nodes/addTriggerNode.d.ts.map +1 -1
  63. package/dist/nodes/compilePrompt.js +17 -7
  64. package/dist/nodes/compilePrompt.js.map +1 -1
  65. package/dist/nodes/nodeFactory.d.ts.map +1 -1
  66. package/dist/platform/mindedChatOpenAI.d.ts +5 -0
  67. package/dist/platform/mindedChatOpenAI.d.ts.map +1 -0
  68. package/dist/platform/mindedChatOpenAI.js +23 -0
  69. package/dist/platform/mindedChatOpenAI.js.map +1 -0
  70. package/dist/platform/mindedCheckpointSaver.js +17 -7
  71. package/dist/platform/mindedCheckpointSaver.js.map +1 -1
  72. package/dist/platform/mindedConnection.d.ts.map +1 -1
  73. package/dist/platform/mindedConnection.js +29 -19
  74. package/dist/platform/mindedConnection.js.map +1 -1
  75. package/dist/platform/mindedConnectionTypes.d.ts +1 -151
  76. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  77. package/dist/platform/mindedConnectionTypes.js +0 -9
  78. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  79. package/dist/platform/piiGateway/gateway.js +17 -7
  80. package/dist/platform/piiGateway/gateway.js.map +1 -1
  81. package/dist/platform/utils/parseAttachments.d.ts.map +1 -1
  82. package/dist/playbooks/playbooks.js +23 -13
  83. package/dist/playbooks/playbooks.js.map +1 -1
  84. package/dist/toolsLibrary/classifier.d.ts.map +1 -1
  85. package/dist/toolsLibrary/index.js +17 -7
  86. package/dist/toolsLibrary/index.js.map +1 -1
  87. package/dist/toolsLibrary/parseDocument.d.ts +3 -3
  88. package/dist/types/Agent.types.d.ts +0 -2
  89. package/dist/types/Agent.types.d.ts.map +1 -1
  90. package/dist/types/Agent.types.js.map +1 -1
  91. package/dist/types/LangGraph.types.d.ts +2 -2
  92. package/dist/types/LangGraph.types.d.ts.map +1 -1
  93. package/dist/types/LangGraph.types.js +1 -3
  94. package/dist/types/LangGraph.types.js.map +1 -1
  95. package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -1
  96. package/dist/utils/extractToolMemoryResponse.d.ts +4 -0
  97. package/dist/utils/extractToolMemoryResponse.d.ts.map +1 -0
  98. package/dist/utils/extractToolMemoryResponse.js +16 -0
  99. package/dist/utils/extractToolMemoryResponse.js.map +1 -0
  100. package/dist/utils/history.d.ts.map +1 -1
  101. package/dist/utils/wait.d.ts.map +1 -1
  102. package/dist/voice/voiceSession.d.ts.map +1 -1
  103. package/dist/voice/voiceSession.js +18 -16
  104. package/dist/voice/voiceSession.js.map +1 -1
  105. package/package.json +2 -2
  106. package/src/agent.ts +24 -94
  107. package/src/cli/index.ts +14 -14
  108. package/src/edges/edgeFactory.ts +2 -2
  109. package/src/nodes/addHumanInTheLoopNode.ts +1 -2
  110. package/src/nodes/addJumpToNode.ts +1 -1
  111. package/src/nodes/addPromptNode.ts +4 -48
  112. package/src/nodes/addToolNode.ts +0 -2
  113. package/src/nodes/addToolRunNode.ts +1 -1
  114. package/src/platform/mindedConnection.ts +12 -12
  115. package/src/platform/mindedConnectionTypes.ts +0 -187
  116. package/src/playbooks/playbooks.ts +7 -7
  117. package/src/types/Agent.types.ts +0 -2
  118. package/src/types/LangGraph.types.ts +1 -3
  119. package/src/voice/voiceSession.ts +1 -9
  120. package/dist/browserTask/README.md +0 -419
  121. package/dist/browserTask/browserAgent.py +0 -632
  122. package/dist/browserTask/captcha_isolated.png +0 -0
  123. package/dist/browserTask/executeBrowserTask.ts +0 -79
  124. package/dist/browserTask/requirements.txt +0 -8
  125. package/dist/browserTask/setup.sh +0 -144
  126. package/dist/interrupts/BaseInterruptSessionManager.d.ts +0 -52
  127. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +0 -1
  128. package/dist/interrupts/BaseInterruptSessionManager.js +0 -40
  129. package/dist/interrupts/BaseInterruptSessionManager.js.map +0 -1
  130. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +0 -14
  131. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +0 -1
  132. package/dist/interrupts/MemoryInterruptSessionManager.js +0 -60
  133. package/dist/interrupts/MemoryInterruptSessionManager.js.map +0 -1
  134. package/dist/interrupts/MindedInterruptSessionManager.d.ts +0 -13
  135. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +0 -1
  136. package/dist/interrupts/MindedInterruptSessionManager.js +0 -151
  137. package/dist/interrupts/MindedInterruptSessionManager.js.map +0 -1
  138. package/dist/interrupts/interruptSessionManagerFactory.d.ts +0 -3
  139. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +0 -1
  140. package/dist/interrupts/interruptSessionManagerFactory.js +0 -46
  141. package/dist/interrupts/interruptSessionManagerFactory.js.map +0 -1
  142. package/src/interrupts/BaseInterruptSessionManager.ts +0 -96
  143. package/src/interrupts/MemoryInterruptSessionManager.ts +0 -63
  144. package/src/interrupts/MindedInterruptSessionManager.ts +0 -162
  145. package/src/interrupts/interruptSessionManagerFactory.ts +0 -20
@@ -15,7 +15,7 @@ import { logger } from '../utils/logger';
15
15
  import { combinePlaybooks } from '../playbooks/playbooks';
16
16
  import { createHistoryStep } from '../utils/history';
17
17
  import { compilePrompt } from './compilePrompt';
18
- import { v4 as uuidv4 } from 'uuid';
18
+
19
19
  type AddPromptNodeParams = {
20
20
  graph: PreCompiledGraph;
21
21
  node: PromptNode;
@@ -27,8 +27,7 @@ type AddPromptNodeParams = {
27
27
 
28
28
  export const addPromptNode = async ({ graph, node, llm, tools, emit, agent }: AddPromptNodeParams) => {
29
29
  const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
30
- await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
31
- logger.info({ msg: `[Node] Executing prompt node`, node: node.displayName });
30
+ logger.debug({ msg: `[Node] Executing prompt node`, node: node.displayName });
32
31
  const llmToUse = node.llmConfig ? createLlmInstance(node.llmConfig) : llm;
33
32
 
34
33
  const globalTools = tools
@@ -70,29 +69,6 @@ export const addPromptNode = async ({ graph, node, llm, tools, emit, agent }: Ad
70
69
  const toolResult = await matchedTool.invoke(toolCall);
71
70
  const endTime = Date.now();
72
71
  logger.debug({ msg: `[Tool] Tool result`, tool: matchedTool?.name, result: toolResult, executionTimeMs: endTime - startTime });
73
- //check for queue after tool call
74
- const systemMessageId = uuidv4();
75
-
76
- await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId, {
77
- messages: [
78
- result,
79
- toolResult,
80
- new SystemMessage({
81
- id: systemMessageId,
82
- content:
83
- 'you called tool when the user send a new message, Consider calling the function again after user message is processed',
84
- }),
85
- ],
86
- history: [
87
- createHistoryStep<HistoryStep>(state.history, {
88
- type: NodeType.TOOL,
89
- nodeId: node.name,
90
- nodeDisplayName: node.displayName,
91
- raw: toolResult,
92
- messageIds: [toolResult.id!, systemMessageId],
93
- }),
94
- ],
95
- });
96
72
  const toolStateUpdate = extractToolStateResponse(toolResult);
97
73
  // Properly merge memory and other state updates
98
74
  stateUpdates = {
@@ -101,8 +77,7 @@ export const addPromptNode = async ({ graph, node, llm, tools, emit, agent }: Ad
101
77
  memory: { ...(stateUpdates as any).memory, ...(toolStateUpdate as any).memory },
102
78
  };
103
79
  toolResults.push(toolResult);
104
- } catch (error: any) {
105
- if (error?.name === 'GraphInterrupt') throw error;
80
+ } catch (error) {
106
81
  logger.error({ msg: `[Tool] Error executing tool`, tool: toolCall.name, error });
107
82
  const errorMessage = new ToolMessage({
108
83
  content: JSON.stringify({ error: error instanceof Error ? error.message : String(error) }),
@@ -115,30 +90,10 @@ export const addPromptNode = async ({ graph, node, llm, tools, emit, agent }: Ad
115
90
  }
116
91
  }
117
92
 
118
- // await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
119
-
120
93
  // Return the tool call message and tool results with state updates spread at top level
121
94
  return {
122
95
  ...stateUpdates,
123
96
  messages: [result, ...toolResults],
124
- history: [
125
- createHistoryStep<HistoryStep>(state.history, {
126
- type: NodeType.TOOL,
127
- nodeId: node.name,
128
- nodeDisplayName: node.displayName,
129
- raw: result,
130
- messageIds: [result.id!],
131
- }),
132
- ...toolResults.map((toolResult) =>
133
- createHistoryStep<HistoryStep>(state.history, {
134
- type: NodeType.TOOL,
135
- nodeId: node.name,
136
- nodeDisplayName: node.displayName,
137
- raw: toolResult,
138
- messageIds: [toolResult.id!],
139
- }),
140
- ),
141
- ],
142
97
  };
143
98
  }
144
99
 
@@ -149,6 +104,7 @@ export const addPromptNode = async ({ graph, node, llm, tools, emit, agent }: Ad
149
104
  });
150
105
  logger.info({ msg: `[Model] Response`, content: result.content });
151
106
  }
107
+
152
108
  return {
153
109
  goto: null,
154
110
  history: createHistoryStep<HistoryStep>(state.history, {
@@ -31,7 +31,6 @@ export const addToolNode = async ({
31
31
  throw new Error(`Tool not found: ${toolNode.toolName} in node ${node.name}`);
32
32
  }
33
33
  const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
34
- await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
35
34
  logger.debug({ msg: `[Node] Executing tool node`, node: toolNode.displayName });
36
35
 
37
36
  const tool = langchainTool(() => {}, {
@@ -53,7 +52,6 @@ export const addToolNode = async ({
53
52
  .invoke([...state.messages, new SystemMessage(systemPrompt)]);
54
53
  const endTime = Date.now();
55
54
  logger.debug({ msg: '[Tool] Model execution time', tool: matchedTool.name, executionTimeMs: endTime - startTime });
56
- await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
57
55
  return {
58
56
  goto: null,
59
57
  messages: [AIToolCallMessage],
@@ -23,7 +23,6 @@ type AddToolRunNodeParams = {
23
23
 
24
24
  export const buildToolRunNodeName = (nodeName: string) => `${nodeName}${internalNodesSuffix.TOOL_RUN}`;
25
25
 
26
- //you never want to interrupt here because of new triggers, as this node depends on the last message to be the tool call from the addToolNode, interrupting will add human message here
27
26
  export const addToolRunNode = async ({ graph, tools, toolNode, attachedToNodeName, agent }: AddToolRunNodeParams) => {
28
27
  const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
29
28
  const matchedTool = tools.find((tool) => tool.name === toolNode.toolName);
@@ -58,6 +57,7 @@ export const addToolRunNode = async ({ graph, tools, toolNode, attachedToNodeNam
58
57
 
59
58
  // Push the toolCallMessage into the messages array from toolStateUpdate
60
59
  const updatedMessages = [toolCallMessage, ...((toolStateUpdate as any).messages || [])];
60
+
61
61
  // Return the full state update from the tool with the updated messages
62
62
 
63
63
  return {
@@ -100,33 +100,33 @@ const connect = async (token: string): Promise<void> => {
100
100
 
101
101
  const checkReady = () => {
102
102
  if (connected && ready) {
103
- logger.info({ msg: '\x1b[32mConnection with Minded platform is ready!\x1b[0m' });
104
- logger.info({ msg: '\x1b[32mPress Ctrl+C to exit...' });
103
+ logger.info('\x1b[32mConnection with Minded platform is ready!\x1b[0m');
104
+ logger.info('\x1b[32mPress Ctrl+C to exit...');
105
105
  resolve();
106
106
  }
107
107
  };
108
108
 
109
109
  // Connection event handlers
110
110
  socket.on('connect', () => {
111
- logger.info({ msg: 'Socket connected, waiting for server setup...' });
111
+ logger.info('Socket connected, waiting for server setup...');
112
112
  connected = true;
113
113
  checkReady();
114
114
  });
115
115
 
116
116
  // Listen for ready event from server
117
117
  socket.on('sdk-socket-ready', (data: { agentId: string; orgName: string }) => {
118
- logger.info({ msg: 'Server ready signal received', data });
118
+ logger.info('Server ready signal received', data);
119
119
  ready = true;
120
120
  checkReady();
121
121
  });
122
122
 
123
123
  socket.on('connect_error', () => {
124
- logger.error({ msg: 'Failed to connect to minded platform' });
124
+ logger.error('Failed to connect to minded platform');
125
125
  reject(new Error('Failed to connect to minded platform'));
126
126
  });
127
127
 
128
128
  socket.on('disconnect', () => {
129
- logger.info({ msg: 'Disconnected from local debugging socket' });
129
+ logger.info('Disconnected from local debugging socket');
130
130
  connected = false;
131
131
  ready = false;
132
132
  });
@@ -136,7 +136,7 @@ const connect = async (token: string): Promise<void> => {
136
136
  logger.error({ msg: 'Server error:', error });
137
137
 
138
138
  if (error.message.includes('Invalid token')) {
139
- logger.info({ msg: 'Invalid token' });
139
+ logger.info('Invalid token');
140
140
 
141
141
  // Disconnect current socket
142
142
  if (socket?.connected) {
@@ -158,14 +158,14 @@ const connect = async (token: string): Promise<void> => {
158
158
  }
159
159
  });
160
160
  } else {
161
- console.warn({ msg: 'No listeners found for event', event });
161
+ console.warn({ message: 'No listeners found for event', event });
162
162
  }
163
163
  });
164
164
 
165
165
  // Handle process termination
166
166
  process.on('SIGINT', () => {
167
167
  if (socket?.connected) {
168
- logger.info({ msg: '\nDisconnecting...' });
168
+ logger.info('\nDisconnecting...');
169
169
  socket.disconnect();
170
170
  }
171
171
  process.exit(0);
@@ -183,17 +183,17 @@ export const start = async (): Promise<void> => {
183
183
 
184
184
  export const disconnect = () => {
185
185
  if (!socket) {
186
- logger.warn({ msg: 'No socket connection to disconnect' });
186
+ logger.warn('No socket connection to disconnect');
187
187
  return;
188
188
  }
189
189
 
190
190
  if (socket.connected) {
191
- logger.info({ msg: 'Disconnecting from Minded platform...' });
191
+ logger.info('Disconnecting from Minded platform...');
192
192
  socket.disconnect();
193
193
  return;
194
194
  }
195
195
 
196
- logger.warn({ msg: 'Socket is already disconnected' });
196
+ logger.warn('Socket is already disconnected');
197
197
  };
198
198
 
199
199
  export const mindedConnection = {
@@ -42,15 +42,6 @@ export enum mindedConnectionSocketMessageType {
42
42
  SDK_VERSION_MISMATCH = 'sdk-version-mismatch', // Browser Task
43
43
  CREATE_BROWSER_SESSION = 'create-browser-session',
44
44
  INVOKE_BROWSER_TASK = 'invoke-browser-task',
45
- // Interrupt Session Management
46
- INTERRUPT_SESSION_IS_PROCESSED = 'interrupt-session-is-processed',
47
- INTERRUPT_SESSION_LOCK = 'interrupt-session-lock',
48
- INTERRUPT_SESSION_RELEASE = 'interrupt-session-release',
49
- INTERRUPT_SESSION_ENQUEUE = 'interrupt-session-enqueue',
50
- INTERRUPT_SESSION_DEQUEUE_ALL = 'interrupt-session-dequeue-all',
51
- INTERRUPT_SESSION_DEQUEUE = 'interrupt-session-dequeue',
52
- INTERRUPT_SESSION_HAS_MESSAGES = 'interrupt-session-has-messages',
53
- INTERRUPT_SESSION_GET_MESSAGES = 'interrupt-session-get-messages',
54
45
  }
55
46
 
56
47
  export type mindedConnectionSocketMessageTypeMap = {
@@ -82,15 +73,6 @@ export type mindedConnectionSocketMessageTypeMap = {
82
73
  [mindedConnectionSocketMessageType.UPDATE_STATE]: UpdateStateRequest;
83
74
  [mindedConnectionSocketMessageType.CREATE_BROWSER_SESSION]: CreateBrowserSessionRequest;
84
75
  [mindedConnectionSocketMessageType.INVOKE_BROWSER_TASK]: InvokeBrowserTaskRequest;
85
- // Interrupt Session Management
86
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED]: InterruptSessionIsProcessedRequest;
87
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK]: InterruptSessionLockRequest;
88
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE]: InterruptSessionReleaseRequest;
89
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE]: InterruptSessionEnqueueRequest;
90
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL]: InterruptSessionDequeueAllRequest;
91
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE]: InterruptSessionDequeueRequest;
92
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES]: InterruptSessionHasMessagesRequest;
93
- [mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES]: InterruptSessionGetMessagesRequest;
94
76
  };
95
77
 
96
78
  export interface BasemindedConnectionSocketMessage {
@@ -224,175 +206,6 @@ export interface TimerTriggerRequest extends BasemindedConnectionSocketMessage {
224
206
  eventArgs: Record<string, any>;
225
207
  }
226
208
 
227
- // Interrupt Session Management Interfaces
228
- export interface InterruptSessionIsProcessedRequest extends BasemindedConnectionSocketMessage {
229
- sessionId: string;
230
- }
231
-
232
- export interface InterruptSessionIsProcessedResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
233
- isProcessed?: boolean;
234
- }
235
-
236
- export interface InterruptSessionLockRequest extends BasemindedConnectionSocketMessage {
237
- sessionId: string;
238
- }
239
-
240
- export interface InterruptSessionLockResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
241
- lockAcquired?: boolean;
242
- }
243
-
244
- export interface InterruptSessionReleaseRequest extends BasemindedConnectionSocketMessage {
245
- sessionId: string;
246
- }
247
-
248
- export interface InterruptSessionReleaseResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
249
- success?: boolean;
250
- }
251
-
252
- export interface InterruptSessionEnqueueRequest extends BasemindedConnectionSocketMessage {
253
- sessionId: string;
254
- message: {
255
- triggerBody: any;
256
- triggerName: string;
257
- appName?: string;
258
- };
259
- }
260
-
261
- export interface InterruptSessionEnqueueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
262
- success?: boolean;
263
- }
264
-
265
- export interface InterruptSessionDequeueAllRequest extends BasemindedConnectionSocketMessage {
266
- sessionId: string;
267
- }
268
-
269
- export interface InterruptSessionDequeueAllResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
270
- messages?: Array<{
271
- triggerBody: any;
272
- triggerName: string;
273
- appName?: string;
274
- }>;
275
- }
276
-
277
- export interface InterruptSessionDequeueRequest extends BasemindedConnectionSocketMessage {
278
- sessionId: string;
279
- }
280
-
281
- export interface InterruptSessionDequeueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
282
- message?: {
283
- triggerBody: any;
284
- triggerName: string;
285
- appName?: string;
286
- } | null;
287
- }
288
-
289
- export interface InterruptSessionHasMessagesRequest extends BasemindedConnectionSocketMessage {
290
- sessionId: string;
291
- }
292
-
293
- export interface InterruptSessionHasMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
294
- hasMessages?: boolean;
295
- }
296
-
297
- export interface InterruptSessionGetMessagesRequest extends BasemindedConnectionSocketMessage {
298
- sessionId: string;
299
- }
300
-
301
- export interface InterruptSessionGetMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
302
- messages?: Array<{
303
- triggerBody: any;
304
- triggerName: string;
305
- appName?: string;
306
- }>;
307
- }
308
-
309
- // Interrupt Session Management Interfaces
310
- export interface InterruptSessionIsProcessedRequest extends BasemindedConnectionSocketMessage {
311
- sessionId: string;
312
- }
313
-
314
- export interface InterruptSessionIsProcessedResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
315
- isProcessed?: boolean;
316
- }
317
-
318
- export interface InterruptSessionLockRequest extends BasemindedConnectionSocketMessage {
319
- sessionId: string;
320
- }
321
-
322
- export interface InterruptSessionReleaseRequest extends BasemindedConnectionSocketMessage {
323
- sessionId: string;
324
- }
325
-
326
- export interface InterruptSessionReleaseResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
327
- success?: boolean;
328
- }
329
-
330
- export interface InterruptSessionEnqueueRequest extends BasemindedConnectionSocketMessage {
331
- sessionId: string;
332
- message: {
333
- triggerBody: any;
334
- triggerName: string;
335
- appName?: string;
336
- };
337
- }
338
-
339
- export interface InterruptSessionEnqueueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
340
- success?: boolean;
341
- }
342
-
343
- export interface InterruptSessionDequeueAllRequest extends BasemindedConnectionSocketMessage {
344
- sessionId: string;
345
- }
346
-
347
- export interface InterruptSessionDequeueAllResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
348
- messages?: Array<{
349
- triggerBody: any;
350
- triggerName: string;
351
- appName?: string;
352
- }>;
353
- }
354
-
355
- export interface InterruptSessionDequeueRequest extends BasemindedConnectionSocketMessage {
356
- sessionId: string;
357
- }
358
-
359
- export interface InterruptSessionDequeueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
360
- message?: {
361
- triggerBody: any;
362
- triggerName: string;
363
- appName?: string;
364
- } | null;
365
- }
366
-
367
- export interface InterruptSessionHasMessagesRequest extends BasemindedConnectionSocketMessage {
368
- sessionId: string;
369
- }
370
-
371
- export interface InterruptSessionHasMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
372
- hasMessages?: boolean;
373
- }
374
-
375
- export interface InterruptSessionGetMessagesRequest extends BasemindedConnectionSocketMessage {
376
- sessionId: string;
377
- }
378
-
379
- export interface InterruptSessionGetMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
380
- messages?: Array<{
381
- triggerBody: any;
382
- triggerName: string;
383
- appName?: string;
384
- }>;
385
- }
386
-
387
- export interface RestoreCheckpointRequest extends BasemindedConnectionSocketMessage {
388
- sessionId: string;
389
- checkpointId: string;
390
- }
391
-
392
- export interface RestoreCheckpointResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
393
- success?: boolean;
394
- }
395
-
396
209
  export interface RestoreCheckpointRequest extends BasemindedConnectionSocketMessage {
397
210
  sessionId: string;
398
211
  checkpointId: string;
@@ -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 {
@@ -93,7 +93,7 @@ function editorJsToMarkdown(blocks: OutputBlockData[]): string {
93
93
  }
94
94
  }
95
95
  } catch (error) {
96
- logger.error({ msg: 'Error converting EditorJS blocks to markdown', error, block });
96
+ logger.error({ message: 'Error converting EditorJS blocks to markdown', error, block });
97
97
  throw error;
98
98
  }
99
99
  })
@@ -135,7 +135,7 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
135
135
 
136
136
  for (const directory of directories) {
137
137
  if (!fs.existsSync(directory)) {
138
- logger.info({ msg: `Playbooks directory does not exist: ${directory}` });
138
+ logger.info(`Playbooks directory does not exist: ${directory}`);
139
139
  continue;
140
140
  }
141
141
 
@@ -148,12 +148,12 @@ function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
148
148
 
149
149
  if (playbook && playbook.name && playbook.blocks) {
150
150
  playbooks.push(playbook);
151
- logger.info({ msg: `Loaded playbook: ${playbook.name} from ${file}` });
151
+ logger.info(`Loaded playbook: ${playbook.name} from ${file}`);
152
152
  } else {
153
- logger.warn({ msg: `Invalid playbook structure in ${file}` });
153
+ logger.warn(`Invalid playbook structure in ${file}`);
154
154
  }
155
155
  } catch (error) {
156
- logger.error({ msg: `Failed to load playbook file ${file}: ${error}` });
156
+ logger.error(`Failed to load playbook file ${file}: ${error}`);
157
157
  }
158
158
  }
159
159
  }
@@ -29,8 +29,6 @@ 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;
34
32
  }
35
33
  export interface HistoryStep {
36
34
  type: NodeType;
@@ -30,9 +30,7 @@ export const createStateAnnotation = <Memory = any>() =>
30
30
  default: () => [],
31
31
  reducer: (a, b) => a.concat(b),
32
32
  }),
33
- sessionId: Annotation<string>({
34
- reducer: (a, b) => b || a,
35
- }),
33
+ sessionId: Annotation<string>(),
36
34
  goto: Annotation<string | null | undefined>({
37
35
  default: () => null,
38
36
  reducer: (a, b) => b,
@@ -8,7 +8,6 @@ import { AIMessage, BaseMessage, HumanMessage } from '@langchain/core/messages';
8
8
  import { v4 as uuidv4 } from 'uuid';
9
9
  import { logger } from '../utils/logger';
10
10
  import { SessionType } from '../types/Agent.types';
11
- import { QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH } from '../interrupts/BaseInterruptSessionManager';
12
11
 
13
12
  /**
14
13
  * Voice Conversation class for managing individual ElevenLabs voice conversations
@@ -158,12 +157,6 @@ export class VoiceSession {
158
157
  break;
159
158
  case 'interruption':
160
159
  logger.debug({ msg: '[Voice] Received interruption' });
161
- if (await this.agent.interruptSessionManager.isProcessed(this.sessionId)) {
162
- await this.agent.interruptSessionManager.enqueueMessage(this.sessionId, {
163
- triggerBody: {},
164
- triggerName: QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH,
165
- });
166
- }
167
160
  this.onInterruptionCallback?.();
168
161
  // Send interruption event to dashboard if connected
169
162
  if (getConfig().dashboardConnected) {
@@ -232,10 +225,9 @@ export class VoiceSession {
232
225
  }
233
226
 
234
227
  private async updateAgentResponse(originalAgentResponse: string, correctedAgentResponse: string): Promise<void> {
235
- const cleanedOriginalAgentResponse = originalAgentResponse.replace('... ', '');
236
228
  const graphState = await this.agent.compiledGraph.getState(this.agent.getLangraphConfig(this.sessionId));
237
229
  const agentMessage: AIMessage | null = graphState.values.messages.find(
238
- (message: BaseMessage) => message.content === cleanedOriginalAgentResponse && message instanceof AIMessage,
230
+ (message: BaseMessage) => message.content === originalAgentResponse && message instanceof AIMessage,
239
231
  );
240
232
  if (agentMessage) {
241
233
  agentMessage.content = correctedAgentResponse;