@minded-ai/mindedjs 1.0.122 → 1.0.123-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 (97) hide show
  1. package/dist/agent.d.ts +4 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +65 -9
  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.ts +79 -0
  9. package/dist/browserTask/requirements.txt +8 -0
  10. package/dist/browserTask/setup.sh +144 -0
  11. package/dist/cli/index.js +14 -14
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/edges/edgeFactory.js +2 -2
  14. package/dist/edges/edgeFactory.js.map +1 -1
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/internalTools/retell.d.ts +12 -0
  20. package/dist/internalTools/retell.d.ts.map +1 -0
  21. package/dist/internalTools/retell.js +54 -0
  22. package/dist/internalTools/retell.js.map +1 -0
  23. package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
  24. package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
  25. package/dist/internalTools/sendPlaceholderMessage.js +61 -0
  26. package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
  27. package/dist/interrupts/BaseInterruptSessionManager.d.ts +52 -0
  28. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
  29. package/dist/interrupts/BaseInterruptSessionManager.js +40 -0
  30. package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
  31. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
  32. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
  33. package/dist/interrupts/MemoryInterruptSessionManager.js +60 -0
  34. package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
  35. package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
  36. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
  37. package/dist/interrupts/MindedInterruptSessionManager.js +151 -0
  38. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
  39. package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
  40. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
  41. package/dist/interrupts/interruptSessionManagerFactory.js +46 -0
  42. package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
  43. package/dist/nodes/addBrowserTaskNode.js +2 -0
  44. package/dist/nodes/addBrowserTaskNode.js.map +1 -1
  45. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  46. package/dist/nodes/addHumanInTheLoopNode.js +2 -1
  47. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  48. package/dist/nodes/addJumpToNode.js +1 -1
  49. package/dist/nodes/addJumpToNode.js.map +1 -1
  50. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  51. package/dist/nodes/addPromptNode.js +43 -1
  52. package/dist/nodes/addPromptNode.js.map +1 -1
  53. package/dist/nodes/addToolNode.d.ts.map +1 -1
  54. package/dist/nodes/addToolNode.js +2 -0
  55. package/dist/nodes/addToolNode.js.map +1 -1
  56. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  57. package/dist/nodes/addToolRunNode.js +1 -0
  58. package/dist/nodes/addToolRunNode.js.map +1 -1
  59. package/dist/platform/mindedConnection.js +12 -12
  60. package/dist/platform/mindedConnection.js.map +1 -1
  61. package/dist/platform/mindedConnectionTypes.d.ts +151 -1
  62. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  63. package/dist/platform/mindedConnectionTypes.js +9 -0
  64. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  65. package/dist/playbooks/playbooks.js +5 -5
  66. package/dist/playbooks/playbooks.js.map +1 -1
  67. package/dist/types/Agent.types.d.ts +2 -0
  68. package/dist/types/Agent.types.d.ts.map +1 -1
  69. package/dist/types/Agent.types.js.map +1 -1
  70. package/dist/types/LangGraph.types.d.ts +2 -2
  71. package/dist/types/LangGraph.types.d.ts.map +1 -1
  72. package/dist/types/LangGraph.types.js +3 -1
  73. package/dist/types/LangGraph.types.js.map +1 -1
  74. package/dist/voice/voiceSession.d.ts.map +1 -1
  75. package/dist/voice/voiceSession.js +9 -1
  76. package/dist/voice/voiceSession.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/agent.ts +89 -19
  79. package/src/cli/index.ts +14 -14
  80. package/src/edges/edgeFactory.ts +2 -2
  81. package/src/index.ts +14 -1
  82. package/src/interrupts/BaseInterruptSessionManager.ts +88 -0
  83. package/src/interrupts/MemoryInterruptSessionManager.ts +63 -0
  84. package/src/interrupts/MindedInterruptSessionManager.ts +162 -0
  85. package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
  86. package/src/nodes/addBrowserTaskNode.ts +2 -2
  87. package/src/nodes/addHumanInTheLoopNode.ts +2 -1
  88. package/src/nodes/addJumpToNode.ts +1 -1
  89. package/src/nodes/addPromptNode.ts +47 -4
  90. package/src/nodes/addToolNode.ts +2 -0
  91. package/src/nodes/addToolRunNode.ts +1 -1
  92. package/src/platform/mindedConnection.ts +12 -12
  93. package/src/platform/mindedConnectionTypes.ts +187 -0
  94. package/src/playbooks/playbooks.ts +5 -5
  95. package/src/types/Agent.types.ts +2 -0
  96. package/src/types/LangGraph.types.ts +3 -1
  97. package/src/voice/voiceSession.ts +9 -1
@@ -93,7 +93,7 @@ function editorJsToMarkdown(blocks: OutputBlockData[]): string {
93
93
  }
94
94
  }
95
95
  } catch (error) {
96
- logger.error({ message: 'Error converting EditorJS blocks to markdown', error, block });
96
+ logger.error({ msg: '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(`Playbooks directory does not exist: ${directory}`);
138
+ logger.info({ msg: `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(`Loaded playbook: ${playbook.name} from ${file}`);
151
+ logger.info({ msg: `Loaded playbook: ${playbook.name} from ${file}` });
152
152
  } else {
153
- logger.warn(`Invalid playbook structure in ${file}`);
153
+ logger.warn({ msg: `Invalid playbook structure in ${file}` });
154
154
  }
155
155
  } catch (error) {
156
- logger.error(`Failed to load playbook file ${file}: ${error}`);
156
+ logger.error({ msg: `Failed to load playbook file ${file}: ${error}` });
157
157
  }
158
158
  }
159
159
  }
@@ -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;
@@ -30,7 +30,9 @@ export const createStateAnnotation = <Memory = any>() =>
30
30
  default: () => [],
31
31
  reducer: (a, b) => a.concat(b),
32
32
  }),
33
- sessionId: Annotation<string>(),
33
+ sessionId: Annotation<string>({
34
+ reducer: (a, b) => b || a,
35
+ }),
34
36
  goto: Annotation<string | null | undefined>({
35
37
  default: () => null,
36
38
  reducer: (a, b) => b,
@@ -8,6 +8,7 @@ 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';
11
12
 
12
13
  /**
13
14
  * Voice Conversation class for managing individual ElevenLabs voice conversations
@@ -157,6 +158,12 @@ export class VoiceSession {
157
158
  break;
158
159
  case 'interruption':
159
160
  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
+ }
160
167
  this.onInterruptionCallback?.();
161
168
  // Send interruption event to dashboard if connected
162
169
  if (getConfig().dashboardConnected) {
@@ -225,9 +232,10 @@ export class VoiceSession {
225
232
  }
226
233
 
227
234
  private async updateAgentResponse(originalAgentResponse: string, correctedAgentResponse: string): Promise<void> {
235
+ const cleanedOriginalAgentResponse = originalAgentResponse.replace('... ', '');
228
236
  const graphState = await this.agent.compiledGraph.getState(this.agent.getLangraphConfig(this.sessionId));
229
237
  const agentMessage: AIMessage | null = graphState.values.messages.find(
230
- (message: BaseMessage) => message.content === originalAgentResponse && message instanceof AIMessage,
238
+ (message: BaseMessage) => message.content === cleanedOriginalAgentResponse && message instanceof AIMessage,
231
239
  );
232
240
  if (agentMessage) {
233
241
  agentMessage.content = correctedAgentResponse;