@minded-ai/mindedjs 1.0.0-ec2-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 (454) hide show
  1. package/README.md +6 -0
  2. package/dist/agent.d.ts +256 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +896 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/browserTask/README.md +419 -0
  7. package/dist/browserTask/browserAgent.py +632 -0
  8. package/dist/browserTask/captcha_isolated.png +0 -0
  9. package/dist/browserTask/executeBrowserTask.d.ts +14 -0
  10. package/dist/browserTask/executeBrowserTask.d.ts.map +1 -0
  11. package/dist/browserTask/executeBrowserTask.js +195 -0
  12. package/dist/browserTask/executeBrowserTask.js.map +1 -0
  13. package/dist/browserTask/executeBrowserTask.py +153 -0
  14. package/dist/browserTask/executeBrowserTask.ts +79 -0
  15. package/dist/browserTask/localBrowserTask.d.ts +49 -0
  16. package/dist/browserTask/localBrowserTask.d.ts.map +1 -0
  17. package/dist/browserTask/localBrowserTask.js +284 -0
  18. package/dist/browserTask/localBrowserTask.js.map +1 -0
  19. package/dist/browserTask/requirements.txt +8 -0
  20. package/dist/browserTask/setup.sh +144 -0
  21. package/dist/browserTask/types.d.ts +35 -0
  22. package/dist/browserTask/types.d.ts.map +1 -0
  23. package/dist/browserTask/types.js +10 -0
  24. package/dist/browserTask/types.js.map +1 -0
  25. package/dist/checkpointer/checkpointSaverFactory.d.ts +7 -0
  26. package/dist/checkpointer/checkpointSaverFactory.d.ts.map +1 -0
  27. package/dist/checkpointer/checkpointSaverFactory.js +53 -0
  28. package/dist/checkpointer/checkpointSaverFactory.js.map +1 -0
  29. package/dist/cli/index.d.ts +3 -0
  30. package/dist/cli/index.d.ts.map +1 -0
  31. package/dist/cli/index.js +209 -0
  32. package/dist/cli/index.js.map +1 -0
  33. package/dist/cli/lambdaHandlerTemplate.d.ts +10 -0
  34. package/dist/cli/lambdaHandlerTemplate.d.ts.map +1 -0
  35. package/dist/cli/lambdaHandlerTemplate.js +76 -0
  36. package/dist/cli/lambdaHandlerTemplate.js.map +1 -0
  37. package/dist/cli/lambdaHandlerTemplate.ts +78 -0
  38. package/dist/cli/localOperatorSetup.d.ts +6 -0
  39. package/dist/cli/localOperatorSetup.d.ts.map +1 -0
  40. package/dist/cli/localOperatorSetup.js +310 -0
  41. package/dist/cli/localOperatorSetup.js.map +1 -0
  42. package/dist/debugging/index.d.ts +2 -0
  43. package/dist/debugging/index.d.ts.map +1 -0
  44. package/dist/debugging/index.js +6 -0
  45. package/dist/debugging/index.js.map +1 -0
  46. package/dist/debugging/llmCallbackHandler.d.ts +36 -0
  47. package/dist/debugging/llmCallbackHandler.d.ts.map +1 -0
  48. package/dist/debugging/llmCallbackHandler.js +101 -0
  49. package/dist/debugging/llmCallbackHandler.js.map +1 -0
  50. package/dist/edges/createDirectEdge.d.ts +4 -0
  51. package/dist/edges/createDirectEdge.d.ts.map +1 -0
  52. package/dist/edges/createDirectEdge.js +24 -0
  53. package/dist/edges/createDirectEdge.js.map +1 -0
  54. package/dist/edges/createLogicalRouter.d.ts +8 -0
  55. package/dist/edges/createLogicalRouter.d.ts.map +1 -0
  56. package/dist/edges/createLogicalRouter.js +194 -0
  57. package/dist/edges/createLogicalRouter.js.map +1 -0
  58. package/dist/edges/createPromptRouter.d.ts +12 -0
  59. package/dist/edges/createPromptRouter.d.ts.map +1 -0
  60. package/dist/edges/createPromptRouter.js +176 -0
  61. package/dist/edges/createPromptRouter.js.map +1 -0
  62. package/dist/edges/edgeFactory.d.ts +14 -0
  63. package/dist/edges/edgeFactory.d.ts.map +1 -0
  64. package/dist/edges/edgeFactory.js +125 -0
  65. package/dist/edges/edgeFactory.js.map +1 -0
  66. package/dist/events/AgentEvents.d.ts +56 -0
  67. package/dist/events/AgentEvents.d.ts.map +1 -0
  68. package/dist/events/AgentEvents.js +13 -0
  69. package/dist/events/AgentEvents.js.map +1 -0
  70. package/dist/events/index.d.ts +3 -0
  71. package/dist/events/index.d.ts.map +1 -0
  72. package/dist/events/index.js +5 -0
  73. package/dist/events/index.js.map +1 -0
  74. package/dist/index.d.ts +35 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +98 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/interfaces/zendesk.d.ts +35 -0
  79. package/dist/interfaces/zendesk.d.ts.map +1 -0
  80. package/dist/interfaces/zendesk.js +219 -0
  81. package/dist/interfaces/zendesk.js.map +1 -0
  82. package/dist/internalTools/appActionRunnerTool.d.ts +5 -0
  83. package/dist/internalTools/appActionRunnerTool.d.ts.map +1 -0
  84. package/dist/internalTools/appActionRunnerTool.js +88 -0
  85. package/dist/internalTools/appActionRunnerTool.js.map +1 -0
  86. package/dist/internalTools/documentExtraction/documentExtraction.d.ts +129 -0
  87. package/dist/internalTools/documentExtraction/documentExtraction.d.ts.map +1 -0
  88. package/dist/internalTools/documentExtraction/documentExtraction.js +736 -0
  89. package/dist/internalTools/documentExtraction/documentExtraction.js.map +1 -0
  90. package/dist/internalTools/documentExtraction/types.d.ts +29 -0
  91. package/dist/internalTools/documentExtraction/types.d.ts.map +1 -0
  92. package/dist/internalTools/documentExtraction/types.js +35 -0
  93. package/dist/internalTools/documentExtraction/types.js.map +1 -0
  94. package/dist/internalTools/libraryActionRunnerTool.d.ts +4 -0
  95. package/dist/internalTools/libraryActionRunnerTool.d.ts.map +1 -0
  96. package/dist/internalTools/libraryActionRunnerTool.js +53 -0
  97. package/dist/internalTools/libraryActionRunnerTool.js.map +1 -0
  98. package/dist/internalTools/retell.d.ts +12 -0
  99. package/dist/internalTools/retell.d.ts.map +1 -0
  100. package/dist/internalTools/retell.js +54 -0
  101. package/dist/internalTools/retell.js.map +1 -0
  102. package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
  103. package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
  104. package/dist/internalTools/sendPlaceholderMessage.js +61 -0
  105. package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
  106. package/dist/internalTools/timer.d.ts +99 -0
  107. package/dist/internalTools/timer.d.ts.map +1 -0
  108. package/dist/internalTools/timer.js +139 -0
  109. package/dist/internalTools/timer.js.map +1 -0
  110. package/dist/internalTools/voice/escalateVoiceCall.d.ts +2 -0
  111. package/dist/internalTools/voice/escalateVoiceCall.d.ts.map +1 -0
  112. package/dist/internalTools/voice/escalateVoiceCall.js +52 -0
  113. package/dist/internalTools/voice/escalateVoiceCall.js.map +1 -0
  114. package/dist/internalTools/voice/retell.d.ts +12 -0
  115. package/dist/internalTools/voice/retell.d.ts.map +1 -0
  116. package/dist/internalTools/voice/retell.js +54 -0
  117. package/dist/internalTools/voice/retell.js.map +1 -0
  118. package/dist/internalTools/voice/sendPlaceholderMessage.d.ts +14 -0
  119. package/dist/internalTools/voice/sendPlaceholderMessage.d.ts.map +1 -0
  120. package/dist/internalTools/voice/sendPlaceholderMessage.js +61 -0
  121. package/dist/internalTools/voice/sendPlaceholderMessage.js.map +1 -0
  122. package/dist/interrupts/BaseInterruptSessionManager.d.ts +49 -0
  123. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
  124. package/dist/interrupts/BaseInterruptSessionManager.js +34 -0
  125. package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
  126. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
  127. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
  128. package/dist/interrupts/MemoryInterruptSessionManager.js +60 -0
  129. package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
  130. package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
  131. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
  132. package/dist/interrupts/MindedInterruptSessionManager.js +162 -0
  133. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
  134. package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
  135. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
  136. package/dist/interrupts/interruptSessionManagerFactory.js +56 -0
  137. package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
  138. package/dist/llm/createLlmInstance.d.ts +3 -0
  139. package/dist/llm/createLlmInstance.d.ts.map +1 -0
  140. package/dist/llm/createLlmInstance.js +31 -0
  141. package/dist/llm/createLlmInstance.js.map +1 -0
  142. package/dist/nodes/addAppToolNode.d.ts +13 -0
  143. package/dist/nodes/addAppToolNode.d.ts.map +1 -0
  144. package/dist/nodes/addAppToolNode.js +87 -0
  145. package/dist/nodes/addAppToolNode.js.map +1 -0
  146. package/dist/nodes/addBrowserTaskNode.d.ts +13 -0
  147. package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -0
  148. package/dist/nodes/addBrowserTaskNode.js +167 -0
  149. package/dist/nodes/addBrowserTaskNode.js.map +1 -0
  150. package/dist/nodes/addBrowserTaskRunNode.d.ts +13 -0
  151. package/dist/nodes/addBrowserTaskRunNode.d.ts.map +1 -0
  152. package/dist/nodes/addBrowserTaskRunNode.js +167 -0
  153. package/dist/nodes/addBrowserTaskRunNode.js.map +1 -0
  154. package/dist/nodes/addHumanInTheLoopNode.d.ts +9 -0
  155. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -0
  156. package/dist/nodes/addHumanInTheLoopNode.js +22 -0
  157. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -0
  158. package/dist/nodes/addJumpToNode.d.ts +7 -0
  159. package/dist/nodes/addJumpToNode.d.ts.map +1 -0
  160. package/dist/nodes/addJumpToNode.js +24 -0
  161. package/dist/nodes/addJumpToNode.js.map +1 -0
  162. package/dist/nodes/addJunctionNode.d.ts +7 -0
  163. package/dist/nodes/addJunctionNode.d.ts.map +1 -0
  164. package/dist/nodes/addJunctionNode.js +20 -0
  165. package/dist/nodes/addJunctionNode.js.map +1 -0
  166. package/dist/nodes/addPromptNode.d.ts +18 -0
  167. package/dist/nodes/addPromptNode.d.ts.map +1 -0
  168. package/dist/nodes/addPromptNode.js +253 -0
  169. package/dist/nodes/addPromptNode.js.map +1 -0
  170. package/dist/nodes/addRpaNode.d.ts +18 -0
  171. package/dist/nodes/addRpaNode.d.ts.map +1 -0
  172. package/dist/nodes/addRpaNode.js +180 -0
  173. package/dist/nodes/addRpaNode.js.map +1 -0
  174. package/dist/nodes/addToolNode.d.ts +13 -0
  175. package/dist/nodes/addToolNode.d.ts.map +1 -0
  176. package/dist/nodes/addToolNode.js +67 -0
  177. package/dist/nodes/addToolNode.js.map +1 -0
  178. package/dist/nodes/addToolRunNode.d.ts +17 -0
  179. package/dist/nodes/addToolRunNode.d.ts.map +1 -0
  180. package/dist/nodes/addToolRunNode.js +59 -0
  181. package/dist/nodes/addToolRunNode.js.map +1 -0
  182. package/dist/nodes/addTriggerNode.d.ts +7 -0
  183. package/dist/nodes/addTriggerNode.d.ts.map +1 -0
  184. package/dist/nodes/addTriggerNode.js +25 -0
  185. package/dist/nodes/addTriggerNode.js.map +1 -0
  186. package/dist/nodes/compilePrompt.d.ts +5 -0
  187. package/dist/nodes/compilePrompt.d.ts.map +1 -0
  188. package/dist/nodes/compilePrompt.js +76 -0
  189. package/dist/nodes/compilePrompt.js.map +1 -0
  190. package/dist/nodes/nodeFactory.d.ts +16 -0
  191. package/dist/nodes/nodeFactory.d.ts.map +1 -0
  192. package/dist/nodes/nodeFactory.js +45 -0
  193. package/dist/nodes/nodeFactory.js.map +1 -0
  194. package/dist/nodes/rpaStepsExecutor.d.ts +5 -0
  195. package/dist/nodes/rpaStepsExecutor.d.ts.map +1 -0
  196. package/dist/nodes/rpaStepsExecutor.js +156 -0
  197. package/dist/nodes/rpaStepsExecutor.js.map +1 -0
  198. package/dist/platform/config.d.ts +16 -0
  199. package/dist/platform/config.d.ts.map +1 -0
  200. package/dist/platform/config.js +80 -0
  201. package/dist/platform/config.js.map +1 -0
  202. package/dist/platform/mindedCheckpointSaver.d.ts +10 -0
  203. package/dist/platform/mindedCheckpointSaver.d.ts.map +1 -0
  204. package/dist/platform/mindedCheckpointSaver.js +137 -0
  205. package/dist/platform/mindedCheckpointSaver.js.map +1 -0
  206. package/dist/platform/mindedConnection.d.ts +15 -0
  207. package/dist/platform/mindedConnection.d.ts.map +1 -0
  208. package/dist/platform/mindedConnection.js +254 -0
  209. package/dist/platform/mindedConnection.js.map +1 -0
  210. package/dist/platform/mindedConnectionTypes.d.ts +404 -0
  211. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -0
  212. package/dist/platform/mindedConnectionTypes.js +51 -0
  213. package/dist/platform/mindedConnectionTypes.js.map +1 -0
  214. package/dist/platform/models/mindedChatOpenAI.d.ts +20 -0
  215. package/dist/platform/models/mindedChatOpenAI.d.ts.map +1 -0
  216. package/dist/platform/models/mindedChatOpenAI.js +32 -0
  217. package/dist/platform/models/mindedChatOpenAI.js.map +1 -0
  218. package/dist/platform/models/parallelWrapper.d.ts +17 -0
  219. package/dist/platform/models/parallelWrapper.d.ts.map +1 -0
  220. package/dist/platform/models/parallelWrapper.js +105 -0
  221. package/dist/platform/models/parallelWrapper.js.map +1 -0
  222. package/dist/platform/piiGateway/gateway.d.ts +14 -0
  223. package/dist/platform/piiGateway/gateway.d.ts.map +1 -0
  224. package/dist/platform/piiGateway/gateway.js +117 -0
  225. package/dist/platform/piiGateway/gateway.js.map +1 -0
  226. package/dist/platform/piiGateway/index.d.ts +3 -0
  227. package/dist/platform/piiGateway/index.d.ts.map +1 -0
  228. package/dist/platform/piiGateway/index.js +7 -0
  229. package/dist/platform/piiGateway/index.js.map +1 -0
  230. package/dist/platform/piiGateway/types.d.ts +27 -0
  231. package/dist/platform/piiGateway/types.d.ts.map +1 -0
  232. package/dist/platform/piiGateway/types.js +3 -0
  233. package/dist/platform/piiGateway/types.js.map +1 -0
  234. package/dist/platform/toolExecutor.d.ts +29 -0
  235. package/dist/platform/toolExecutor.d.ts.map +1 -0
  236. package/dist/platform/toolExecutor.js +84 -0
  237. package/dist/platform/toolExecutor.js.map +1 -0
  238. package/dist/platform/utils/parseAttachments.d.ts +14 -0
  239. package/dist/platform/utils/parseAttachments.d.ts.map +1 -0
  240. package/dist/platform/utils/parseAttachments.js +53 -0
  241. package/dist/platform/utils/parseAttachments.js.map +1 -0
  242. package/dist/platform/utils/tools.d.ts +6 -0
  243. package/dist/platform/utils/tools.d.ts.map +1 -0
  244. package/dist/platform/utils/tools.js +57 -0
  245. package/dist/platform/utils/tools.js.map +1 -0
  246. package/dist/playbooks/playbooks.d.ts +15 -0
  247. package/dist/playbooks/playbooks.d.ts.map +1 -0
  248. package/dist/playbooks/playbooks.js +208 -0
  249. package/dist/playbooks/playbooks.js.map +1 -0
  250. package/dist/toolsLibrary/classifier.d.ts +74 -0
  251. package/dist/toolsLibrary/classifier.d.ts.map +1 -0
  252. package/dist/toolsLibrary/classifier.js +256 -0
  253. package/dist/toolsLibrary/classifier.js.map +1 -0
  254. package/dist/toolsLibrary/extraction.d.ts +83 -0
  255. package/dist/toolsLibrary/extraction.d.ts.map +1 -0
  256. package/dist/toolsLibrary/extraction.js +328 -0
  257. package/dist/toolsLibrary/extraction.js.map +1 -0
  258. package/dist/toolsLibrary/index.d.ts +9 -0
  259. package/dist/toolsLibrary/index.d.ts.map +1 -0
  260. package/dist/toolsLibrary/index.js +46 -0
  261. package/dist/toolsLibrary/index.js.map +1 -0
  262. package/dist/toolsLibrary/parseDocument.d.ts +30 -0
  263. package/dist/toolsLibrary/parseDocument.d.ts.map +1 -0
  264. package/dist/toolsLibrary/parseDocument.js +119 -0
  265. package/dist/toolsLibrary/parseDocument.js.map +1 -0
  266. package/dist/triggers/triggerTypeToDefaultMessage.d.ts +4 -0
  267. package/dist/triggers/triggerTypeToDefaultMessage.d.ts.map +1 -0
  268. package/dist/triggers/triggerTypeToDefaultMessage.js +10 -0
  269. package/dist/triggers/triggerTypeToDefaultMessage.js.map +1 -0
  270. package/dist/types/Agent.types.d.ts +60 -0
  271. package/dist/types/Agent.types.d.ts.map +1 -0
  272. package/dist/types/Agent.types.js +9 -0
  273. package/dist/types/Agent.types.js.map +1 -0
  274. package/dist/types/Flows.types.d.ts +232 -0
  275. package/dist/types/Flows.types.d.ts.map +1 -0
  276. package/dist/types/Flows.types.js +65 -0
  277. package/dist/types/Flows.types.js.map +1 -0
  278. package/dist/types/LLM.types.d.ts +7 -0
  279. package/dist/types/LLM.types.d.ts.map +1 -0
  280. package/dist/types/LLM.types.js +11 -0
  281. package/dist/types/LLM.types.js.map +1 -0
  282. package/dist/types/LangGraph.types.d.ts +45 -0
  283. package/dist/types/LangGraph.types.d.ts.map +1 -0
  284. package/dist/types/LangGraph.types.js +77 -0
  285. package/dist/types/LangGraph.types.js.map +1 -0
  286. package/dist/types/Platform.types.d.ts +7 -0
  287. package/dist/types/Platform.types.d.ts.map +1 -0
  288. package/dist/types/Platform.types.js +11 -0
  289. package/dist/types/Platform.types.js.map +1 -0
  290. package/dist/types/Tools.types.d.ts +26 -0
  291. package/dist/types/Tools.types.d.ts.map +1 -0
  292. package/dist/types/Tools.types.js +3 -0
  293. package/dist/types/Tools.types.js.map +1 -0
  294. package/dist/types/Voice.types.d.ts +5 -0
  295. package/dist/types/Voice.types.d.ts.map +1 -0
  296. package/dist/types/Voice.types.js +3 -0
  297. package/dist/types/Voice.types.js.map +1 -0
  298. package/dist/utils/agentUtils.d.ts +5 -0
  299. package/dist/utils/agentUtils.d.ts.map +1 -0
  300. package/dist/utils/agentUtils.js +97 -0
  301. package/dist/utils/agentUtils.js.map +1 -0
  302. package/dist/utils/extractStateMemoryResponse.d.ts +5 -0
  303. package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -0
  304. package/dist/utils/extractStateMemoryResponse.js +91 -0
  305. package/dist/utils/extractStateMemoryResponse.js.map +1 -0
  306. package/dist/utils/history.d.ts +4 -0
  307. package/dist/utils/history.d.ts.map +1 -0
  308. package/dist/utils/history.js +33 -0
  309. package/dist/utils/history.js.map +1 -0
  310. package/dist/utils/logger.d.ts +3 -0
  311. package/dist/utils/logger.d.ts.map +1 -0
  312. package/dist/utils/logger.js +39 -0
  313. package/dist/utils/logger.js.map +1 -0
  314. package/dist/utils/schemaUtils.d.ts +15 -0
  315. package/dist/utils/schemaUtils.d.ts.map +1 -0
  316. package/dist/utils/schemaUtils.js +56 -0
  317. package/dist/utils/schemaUtils.js.map +1 -0
  318. package/dist/utils/wait.d.ts +2 -0
  319. package/dist/utils/wait.d.ts.map +1 -0
  320. package/dist/utils/wait.js +6 -0
  321. package/dist/utils/wait.js.map +1 -0
  322. package/dist/voice/elevenLabsUtils.d.ts +65 -0
  323. package/dist/voice/elevenLabsUtils.d.ts.map +1 -0
  324. package/dist/voice/elevenLabsUtils.js +4 -0
  325. package/dist/voice/elevenLabsUtils.js.map +1 -0
  326. package/dist/voice/voiceSession.d.ts +37 -0
  327. package/dist/voice/voiceSession.d.ts.map +1 -0
  328. package/dist/voice/voiceSession.js +306 -0
  329. package/dist/voice/voiceSession.js.map +1 -0
  330. package/docs/.gitbook/assets/ADLC.png +0 -0
  331. package/docs/.gitbook/assets/PII-masking.png +0 -0
  332. package/docs/.gitbook/assets/image.png +0 -0
  333. package/docs/.gitbook/assets/on-prem.svg +4 -0
  334. package/docs/README.md +54 -0
  335. package/docs/SUMMARY.md +56 -0
  336. package/docs/examples/order-refund-flow.md +566 -0
  337. package/docs/getting-started/environment-configuration.md +158 -0
  338. package/docs/getting-started/installation.md +44 -0
  339. package/docs/getting-started/project-configuration.md +206 -0
  340. package/docs/getting-started/quick-start.md +262 -0
  341. package/docs/integrations/zendesk.md +554 -0
  342. package/docs/low-code-editor/edges.md +396 -0
  343. package/docs/low-code-editor/flows.md +74 -0
  344. package/docs/low-code-editor/nodes.md +367 -0
  345. package/docs/low-code-editor/playbooks.md +280 -0
  346. package/docs/low-code-editor/tools.md +358 -0
  347. package/docs/low-code-editor/triggers.md +182 -0
  348. package/docs/platform/on-prem.md +182 -0
  349. package/docs/platform/operator.md +89 -0
  350. package/docs/platform/pii-masking.md +221 -0
  351. package/docs/platform/scenarios.md +43 -0
  352. package/docs/platform/secrets.md +99 -0
  353. package/docs/platform/sso.md +27 -0
  354. package/docs/resources/your-first-eval.md +108 -0
  355. package/docs/sdk/agent-api.md +540 -0
  356. package/docs/sdk/debugging.md +80 -0
  357. package/docs/sdk/events.md +595 -0
  358. package/docs/sdk/logging.md +72 -0
  359. package/docs/sdk/memory.md +271 -0
  360. package/docs/sdk/parallel-llm.md +242 -0
  361. package/docs/sdk/vectorstore-query.md +60 -0
  362. package/docs/tooling/classifier.md +217 -0
  363. package/docs/tooling/document-processing.md +389 -0
  364. package/docs/tooling/extraction.md +78 -0
  365. package/docs/tooling/timers.md +61 -0
  366. package/package.json +73 -0
  367. package/src/agent.ts +1019 -0
  368. package/src/browserTask/executeBrowserTask.py +153 -0
  369. package/src/browserTask/executeBrowserTask.ts +253 -0
  370. package/src/browserTask/localBrowserTask.ts +300 -0
  371. package/src/browserTask/profile/Default/Extension Rules/000003.log +0 -0
  372. package/src/browserTask/profile/Default/Extension Scripts/000003.log +0 -0
  373. package/src/browserTask/profile/Default/Extension State/000003.log +0 -0
  374. package/src/browserTask/profile/Default/GCM Store/000003.log +0 -0
  375. package/src/browserTask/profile/Default/Local Storage/leveldb/000004.log +0 -0
  376. package/src/browserTask/profile/Default/Session Storage/000003.log +0 -0
  377. package/src/browserTask/profile/Default/Site Characteristics Database/000003.log +0 -0
  378. package/src/browserTask/profile/Default/Sync Data/LevelDB/000003.log +0 -0
  379. package/src/browserTask/profile/Default/shared_proto_db/000003.log +0 -0
  380. package/src/browserTask/profile/Default/shared_proto_db/metadata/000003.log +0 -0
  381. package/src/browserTask/types.ts +37 -0
  382. package/src/checkpointer/checkpointSaverFactory.ts +18 -0
  383. package/src/cli/index.ts +188 -0
  384. package/src/cli/lambdaHandlerTemplate.ts +78 -0
  385. package/src/cli/localOperatorSetup.ts +308 -0
  386. package/src/debugging/index.ts +1 -0
  387. package/src/debugging/llmCallbackHandler.ts +125 -0
  388. package/src/edges/createDirectEdge.ts +22 -0
  389. package/src/edges/createLogicalRouter.ts +182 -0
  390. package/src/edges/createPromptRouter.ts +213 -0
  391. package/src/edges/edgeFactory.ts +167 -0
  392. package/src/events/AgentEvents.ts +58 -0
  393. package/src/events/index.ts +3 -0
  394. package/src/index.ts +105 -0
  395. package/src/interfaces/zendesk.ts +212 -0
  396. package/src/internalTools/appActionRunnerTool.ts +68 -0
  397. package/src/internalTools/documentExtraction/documentExtraction.ts +804 -0
  398. package/src/internalTools/documentExtraction/types.ts +59 -0
  399. package/src/internalTools/libraryActionRunnerTool.ts +62 -0
  400. package/src/internalTools/timer.ts +125 -0
  401. package/src/internalTools/voice/escalateVoiceCall.ts +15 -0
  402. package/src/internalTools/voice/retell.ts +28 -0
  403. package/src/internalTools/voice/sendPlaceholderMessage.ts +27 -0
  404. package/src/interrupts/BaseInterruptSessionManager.ts +80 -0
  405. package/src/interrupts/MemoryInterruptSessionManager.ts +63 -0
  406. package/src/interrupts/MindedInterruptSessionManager.ts +163 -0
  407. package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
  408. package/src/llm/createLlmInstance.ts +33 -0
  409. package/src/nodes/addAppToolNode.ts +111 -0
  410. package/src/nodes/addBrowserTaskNode.ts +191 -0
  411. package/src/nodes/addBrowserTaskRunNode.ts +190 -0
  412. package/src/nodes/addHumanInTheLoopNode.ts +26 -0
  413. package/src/nodes/addJumpToNode.ts +26 -0
  414. package/src/nodes/addJunctionNode.ts +21 -0
  415. package/src/nodes/addPromptNode.ts +305 -0
  416. package/src/nodes/addRpaNode.ts +217 -0
  417. package/src/nodes/addToolNode.ts +84 -0
  418. package/src/nodes/addToolRunNode.ts +80 -0
  419. package/src/nodes/addTriggerNode.ts +27 -0
  420. package/src/nodes/compilePrompt.ts +44 -0
  421. package/src/nodes/nodeFactory.ts +61 -0
  422. package/src/nodes/rpaStepsExecutor.ts +175 -0
  423. package/src/platform/config.ts +89 -0
  424. package/src/platform/mindedCheckpointSaver.ts +146 -0
  425. package/src/platform/mindedConnection.ts +250 -0
  426. package/src/platform/mindedConnectionTypes.ts +495 -0
  427. package/src/platform/models/mindedChatOpenAI.ts +49 -0
  428. package/src/platform/models/parallelWrapper.ts +141 -0
  429. package/src/platform/piiGateway/gateway.ts +103 -0
  430. package/src/platform/piiGateway/index.ts +5 -0
  431. package/src/platform/piiGateway/types.ts +29 -0
  432. package/src/platform/toolExecutor.ts +106 -0
  433. package/src/platform/utils/parseAttachments.ts +56 -0
  434. package/src/platform/utils/tools.ts +55 -0
  435. package/src/playbooks/playbooks.ts +200 -0
  436. package/src/toolsLibrary/classifier.ts +326 -0
  437. package/src/toolsLibrary/extraction.ts +393 -0
  438. package/src/toolsLibrary/index.ts +10 -0
  439. package/src/toolsLibrary/parseDocument.ts +129 -0
  440. package/src/triggers/triggerTypeToDefaultMessage.ts +9 -0
  441. package/src/types/Agent.types.ts +73 -0
  442. package/src/types/Flows.types.ts +262 -0
  443. package/src/types/LLM.types.ts +15 -0
  444. package/src/types/LangGraph.types.ts +86 -0
  445. package/src/types/Platform.types.ts +6 -0
  446. package/src/types/Tools.types.ts +28 -0
  447. package/src/types/Voice.types.ts +4 -0
  448. package/src/utils/agentUtils.ts +69 -0
  449. package/src/utils/history.ts +38 -0
  450. package/src/utils/logger.ts +38 -0
  451. package/src/utils/schemaUtils.ts +68 -0
  452. package/src/utils/wait.ts +1 -0
  453. package/src/voice/elevenLabsUtils.ts +81 -0
  454. package/src/voice/voiceSession.ts +309 -0
@@ -0,0 +1,27 @@
1
+ import { RunnableLike } from '@langchain/core/runnables';
2
+ import { NodeType, TriggerNode, TriggerType } from '../types/Flows.types';
3
+ import { PreCompiledGraph, stateAnnotation } from '../types/LangGraph.types';
4
+ import { logger } from '../utils/logger';
5
+ import { HistoryStep } from '../types/Agent.types';
6
+ import { createHistoryStep } from '../utils/history';
7
+
8
+ export const addTriggerNode = async ({ graph, node }: { graph: PreCompiledGraph; node: TriggerNode }) => {
9
+ const callback: RunnableLike = async (state: typeof stateAnnotation.State) => {
10
+ logger.debug({ msg: `[Trigger] Executing trigger node`, node: node.displayName });
11
+ if (node.triggerType === TriggerType.MANUAL) {
12
+ state.goto = null;
13
+ state.history.push(
14
+ createHistoryStep<HistoryStep>(state.history, {
15
+ type: NodeType.TRIGGER,
16
+ nodeId: node.name,
17
+ nodeDisplayName: node.displayName,
18
+ raw: '',
19
+ messageIds: [],
20
+ }),
21
+ );
22
+ }
23
+ return state;
24
+ };
25
+
26
+ graph.addNode(node.name, callback);
27
+ };
@@ -0,0 +1,44 @@
1
+ import * as ejs from 'ejs';
2
+ import { logger } from '../utils/logger';
3
+
4
+ /**
5
+ * Compile prompt with parameters using EJS and placeholder replacement
6
+ */
7
+ export function compilePrompt(prompt: string, params: Record<string, any> = {}): string {
8
+ try {
9
+ // Define system parameters
10
+ params.system = { currentTime: new Date().toISOString() };
11
+
12
+ // First, render with EJS
13
+ let compiledPrompt = ejs.render(prompt, params);
14
+
15
+ // Then, replace placeholders in {} format
16
+ compiledPrompt = replacePlaceholders(compiledPrompt, params);
17
+
18
+ return compiledPrompt;
19
+ } catch (err) {
20
+ logger.error({ message: 'Error compiling prompt', err });
21
+ return prompt; // Return uncompiled if there's an error
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Replace placeholders in {key} format
27
+ */
28
+ function replacePlaceholders(text: string, params: Record<string, any>): string {
29
+ return text.replace(/\{([^}]+)\}/g, (match, key) => {
30
+ const keys = key.split('.');
31
+ let value: any = params;
32
+
33
+ for (const k of keys) {
34
+ if (value && typeof value === 'object' && k in value) {
35
+ value = value[k];
36
+ } else {
37
+ logger.warn({ message: `Placeholder {${key}} in prompt not found in params. It will remain as placeholder.` });
38
+ return match; // Return original if key not found
39
+ }
40
+ }
41
+
42
+ return String(value);
43
+ });
44
+ }
@@ -0,0 +1,61 @@
1
+ import { Node, NodeType } from '../types/Flows.types';
2
+ import { PreCompiledGraph } from '../types/LangGraph.types';
3
+ import { Tool } from '../types/Tools.types';
4
+ import { addToolNode } from './addToolNode';
5
+ import { addPromptNode } from './addPromptNode';
6
+ import { AgentEventRequestPayloads } from '../events/AgentEvents';
7
+ import { EmitSignature } from '../types/Agent.types';
8
+ import { addAppToolNode } from './addAppToolNode';
9
+ import { addTriggerNode } from './addTriggerNode';
10
+ import { LLMProviders } from '../types/LLM.types';
11
+ import { Agent } from '../agent';
12
+ import { addJumpToNode } from './addJumpToNode';
13
+ import { addJunctionNode } from './addJunctionNode';
14
+ import { addBrowserTaskNode } from './addBrowserTaskNode';
15
+ import { addRpaNode } from './addRpaNode';
16
+
17
+ export const nodeFactory = ({
18
+ graph,
19
+ node,
20
+ tools,
21
+ llm,
22
+ emit,
23
+ agent,
24
+ }: {
25
+ graph: PreCompiledGraph;
26
+ node: Node;
27
+ tools: Tool<any, any>[];
28
+ llm: (typeof LLMProviders)[keyof typeof LLMProviders];
29
+ emit: EmitSignature<any, keyof AgentEventRequestPayloads<any>>;
30
+ agent: Agent;
31
+ }) => {
32
+ const nodeType = node.type;
33
+ switch (nodeType) {
34
+ case NodeType.TRIGGER:
35
+ addTriggerNode({ graph, node });
36
+ break;
37
+ case NodeType.TOOL:
38
+ addToolNode({ graph, node, tools, llm, agent });
39
+ break;
40
+ case NodeType.JUNCTION:
41
+ addJunctionNode({ graph, node });
42
+ break;
43
+ case NodeType.APP_TOOL:
44
+ addAppToolNode({ graph, node, llm, agent, tools });
45
+ break;
46
+ case NodeType.PROMPT_NODE:
47
+ addPromptNode({ graph, node, tools, llm, emit, agent });
48
+ break;
49
+ case NodeType.JUMP_TO_NODE:
50
+ addJumpToNode({ graph, node });
51
+ break;
52
+ case NodeType.BROWSER_TASK:
53
+ addBrowserTaskNode({ graph, node, agent, llm });
54
+ break;
55
+ case NodeType.RPA:
56
+ addRpaNode({ graph, node, tools, emit, agent, llm });
57
+ break;
58
+ default:
59
+ throw new Error(`Unsupported node type: ${nodeType}`);
60
+ }
61
+ };
@@ -0,0 +1,175 @@
1
+ import { Page } from 'playwright';
2
+ import { RpaActionType } from '../types/Flows.types';
3
+ import { LLMProviders } from '../types/LLM.types';
4
+ import { logger } from '../utils/logger';
5
+ import { z } from 'zod';
6
+ import { SystemMessage } from '@langchain/core/messages';
7
+ import { compilePrompt } from './compilePrompt';
8
+ import { stateAnnotation } from '../types/LangGraph.types';
9
+ import { createZodSchemaFromFields } from '../utils/schemaUtils';
10
+
11
+ // Helper function to execute individual RPA steps
12
+ export async function executeRpaStep(
13
+ page: Page,
14
+ step: any,
15
+ state: typeof stateAnnotation.State,
16
+ llm: (typeof LLMProviders)[keyof typeof LLMProviders],
17
+ ): Promise<any> {
18
+ // Create params object with memory and secrets
19
+ const params = {
20
+ env: process.env,
21
+ state: state,
22
+ };
23
+
24
+ switch (step.type) {
25
+ case RpaActionType.CLICK: {
26
+ // Compile selectors in case they contain placeholders
27
+ const compiledXpath = step.xpath ? compilePrompt(step.xpath, params) : undefined;
28
+ const compiledSelector = step.selector ? compilePrompt(step.selector, params) : undefined;
29
+
30
+ if (compiledXpath) {
31
+ await page.locator(`xpath=${compiledXpath}`).click({ timeout: 15000 });
32
+ } else if (compiledSelector) {
33
+ await page.click(compiledSelector, { timeout: 15000 });
34
+ }
35
+ return { action: 'clicked' };
36
+ }
37
+
38
+ case RpaActionType.TYPE: {
39
+ // Compile text and selectors
40
+ const compiledText = step.text ? compilePrompt(step.text, params) : '';
41
+ const compiledTypeXpath = step.xpath ? compilePrompt(step.xpath, params) : undefined;
42
+ const compiledTypeSelector = step.selector ? compilePrompt(step.selector, params) : undefined;
43
+
44
+ if (step.shouldReplaceExistingText) {
45
+ if (compiledTypeXpath) {
46
+ await page.locator(`xpath=${compiledTypeXpath}`).fill(compiledText, { timeout: 15000 });
47
+ } else if (compiledTypeSelector) {
48
+ await page.fill(compiledTypeSelector, compiledText, { timeout: 15000 });
49
+ }
50
+ } else {
51
+ if (compiledTypeXpath) {
52
+ await page.locator(`xpath=${compiledTypeXpath}`).type(compiledText, { timeout: 15000 });
53
+ } else if (compiledTypeSelector) {
54
+ await page.type(compiledTypeSelector, compiledText, { timeout: 15000 });
55
+ }
56
+ }
57
+ return { action: 'typed', text: compiledText };
58
+ }
59
+
60
+ case RpaActionType.WAIT:
61
+ await page.waitForTimeout(step.waitTime || 3000);
62
+ return { action: 'waited', duration: step.waitTime };
63
+
64
+ case RpaActionType.GOTO: {
65
+ // Compile URL
66
+ const compiledUrl = step.url ? compilePrompt(step.url, params) : '';
67
+ await page.goto(compiledUrl, { waitUntil: 'load', timeout: 15000 });
68
+ return { action: 'navigated', url: compiledUrl };
69
+ }
70
+
71
+ case RpaActionType.PRESS: {
72
+ // Compile key
73
+ const compiledKey = step.key ? compilePrompt(step.key, params) : 'Enter';
74
+ await page.keyboard.press(compiledKey);
75
+ return { action: 'pressed', key: compiledKey };
76
+ }
77
+
78
+ case RpaActionType.SELECT: {
79
+ // Compile value and selectors
80
+ const compiledValue = step.value ? compilePrompt(step.value, params) : '';
81
+ const compiledSelectXpath = step.xpath ? compilePrompt(step.xpath, params) : undefined;
82
+ const compiledSelectSelector = step.selector ? compilePrompt(step.selector, params) : undefined;
83
+
84
+ if (compiledSelectXpath) {
85
+ await page.locator(`xpath=${compiledSelectXpath}`).selectOption(compiledValue, { timeout: 15000 });
86
+ } else if (compiledSelectSelector) {
87
+ await page.selectOption(compiledSelectSelector, compiledValue, { timeout: 15000 });
88
+ }
89
+ return { action: 'selected', value: compiledValue };
90
+ }
91
+
92
+ case RpaActionType.SCREENSHOT: {
93
+ const screenshot = await page.screenshot({ type: 'png' });
94
+ // Compile description if provided
95
+ const compiledDescription = step.description ? compilePrompt(step.description, params) : undefined;
96
+ return {
97
+ action: 'screenshot',
98
+ description: compiledDescription,
99
+ data: screenshot.toString('base64'),
100
+ };
101
+ }
102
+
103
+ case RpaActionType.EXTRACT_DATA: {
104
+ if (!llm) {
105
+ throw new Error('LLM is required for EXTRACT_DATA action');
106
+ }
107
+
108
+ // Get the page content for extraction
109
+ const pageContent = await page.content();
110
+ const url = page.url();
111
+
112
+ // Convert outputSchema to Zod schema
113
+ const zodSchema = createZodSchemaFromFields(step.outputSchema, { result: z.string().describe('The extracted data') });
114
+
115
+ const prompt = `Extract data from the following web page according to the specified structure.
116
+ Extract the requested data and return it as a structured object.
117
+ WEB PAGE CONTENT:
118
+ ${pageContent}`;
119
+
120
+ try {
121
+ // Check if LLM supports structured output
122
+ const supportsStructuredOutput = 'withStructuredOutput' in llm && typeof (llm as any).withStructuredOutput === 'function';
123
+
124
+ let extractedData: any;
125
+
126
+ if (supportsStructuredOutput) {
127
+ // Use withStructuredOutput for guaranteed schema compliance
128
+ const structuredLLM = (llm as any).withStructuredOutput(zodSchema);
129
+ const messages = [new SystemMessage(prompt)];
130
+ extractedData = await structuredLLM.invoke(messages);
131
+ } else {
132
+ // Fallback to regular LLM call if withStructuredOutput is not available
133
+ logger.warn({
134
+ msg: '[RPA] LLM does not support withStructuredOutput, using regular invoke',
135
+ url,
136
+ });
137
+
138
+ const response = await llm.invoke([new SystemMessage(prompt)]);
139
+
140
+ // Try to parse the response as JSON
141
+ const responseContent = typeof response.content === 'string' ? response.content : JSON.stringify(response.content);
142
+ extractedData = JSON.parse(responseContent);
143
+
144
+ // Validate against schema
145
+ try {
146
+ extractedData = zodSchema.parse(extractedData);
147
+ } catch (validationError) {
148
+ logger.error({
149
+ msg: '[RPA] Extracted data validation failed',
150
+ error: validationError instanceof Error ? validationError.message : 'Unknown error',
151
+ url,
152
+ });
153
+ throw validationError;
154
+ }
155
+ }
156
+
157
+ return {
158
+ action: 'extract_data',
159
+ url,
160
+ data: extractedData,
161
+ };
162
+ } catch (error) {
163
+ logger.error({
164
+ msg: '[RPA] Failed to extract data',
165
+ error: error instanceof Error ? error.message : 'Unknown error',
166
+ url,
167
+ });
168
+ throw error;
169
+ }
170
+ }
171
+
172
+ default:
173
+ throw new Error(`Unknown RPA action type: ${step.type}`);
174
+ }
175
+ }
@@ -0,0 +1,89 @@
1
+ import { resolve } from 'path';
2
+ import { config } from 'dotenv';
3
+ import { Environment } from '../types/Platform.types';
4
+ import { BrowserTaskMode } from '../browserTask/types';
5
+ import { logger } from '../utils/logger';
6
+ const path = resolve(__dirname, '../../.env');
7
+ config({ path });
8
+
9
+ type MindedConfig = {
10
+ baseUrl: string;
11
+ env: Environment;
12
+ token: string | null;
13
+ runLocally: boolean;
14
+ isDeployed: boolean;
15
+ dashboardConnected: boolean;
16
+ elevenLabsKey: string | null;
17
+ elevenLabsAgentId: string | null;
18
+ browserTaskMode: BrowserTaskMode;
19
+ };
20
+
21
+ const parseBrowserTaskMode = (value: string | undefined): BrowserTaskMode => {
22
+ if (!value) {
23
+ return BrowserTaskMode.CLOUD;
24
+ }
25
+ const allowedModes = new Set<string>(Object.values(BrowserTaskMode));
26
+ if (allowedModes.has(value)) {
27
+ return value as BrowserTaskMode;
28
+ }
29
+ logger.warn({
30
+ message: 'Invalid BROWSER_TASK_MODE provided; defaulting to cloud',
31
+ provided: value,
32
+ allowed: Array.from(allowedModes),
33
+ });
34
+ return BrowserTaskMode.CLOUD;
35
+ };
36
+
37
+ export const getConfig = (): MindedConfig => {
38
+ const environment = (process.env.NODE_ENV as Environment) || Environment.DEVELOPMENT;
39
+ switch (environment) {
40
+ case Environment.TEST:
41
+ return {
42
+ baseUrl: process.env.MINDED_API_URL || process.env.MINDED_DASHBOARD_API_URL || 'http://localhost:8888',
43
+ env: Environment.TEST,
44
+ token: process.env.MINDED_CONNECTION_TOKEN || '',
45
+ runLocally: process.env.RUN_LOCALLY !== 'false',
46
+ isDeployed: process.env.MINDED_CLOUD === 'true',
47
+ dashboardConnected: false,
48
+ elevenLabsKey: process.env.ELEVEN_LABS_API_KEY || null,
49
+ elevenLabsAgentId: process.env.ELEVEN_LABS_AGENT_ID || null,
50
+ browserTaskMode: parseBrowserTaskMode(process.env.BROWSER_TASK_MODE),
51
+ };
52
+ case Environment.DEVELOPMENT:
53
+ return {
54
+ baseUrl: process.env.MINDED_DASHBOARD_API_URL || 'https://dashboard-api.minded.com',
55
+ env: Environment.DEVELOPMENT,
56
+ token: process.env.MINDED_CONNECTION_TOKEN || '',
57
+ runLocally: process.env.RUN_LOCALLY === 'true',
58
+ isDeployed: process.env.MINDED_CLOUD === 'true',
59
+ elevenLabsKey: process.env.ELEVEN_LABS_API_KEY || null,
60
+ dashboardConnected: true,
61
+ elevenLabsAgentId: process.env.ELEVEN_LABS_AGENT_ID || 'agent_01jye194psezr909nwec27m2t9',
62
+ browserTaskMode: parseBrowserTaskMode(process.env.BROWSER_TASK_MODE),
63
+ };
64
+ case Environment.STAGING:
65
+ return {
66
+ baseUrl: process.env.MINDED_API_URL || 'https://api.minded.com',
67
+ env: Environment.STAGING,
68
+ token: process.env.MINDED_CONNECTION_TOKEN || '',
69
+ runLocally: false,
70
+ isDeployed: process.env.MINDED_CLOUD === 'true',
71
+ elevenLabsKey: process.env.ELEVEN_LABS_API_KEY || null,
72
+ dashboardConnected: false,
73
+ elevenLabsAgentId: process.env.ELEVEN_LABS_AGENT_ID || 'agent_01jye1ajkaf17axpcxg220qwcm',
74
+ browserTaskMode: parseBrowserTaskMode(process.env.BROWSER_TASK_MODE),
75
+ };
76
+ case Environment.PRODUCTION:
77
+ return {
78
+ baseUrl: process.env.MINDED_API_URL || 'https://api.minded.com',
79
+ env: Environment.PRODUCTION,
80
+ token: process.env.MINDED_CONNECTION_TOKEN || '',
81
+ runLocally: false,
82
+ isDeployed: process.env.MINDED_CLOUD === 'true',
83
+ elevenLabsKey: process.env.ELEVEN_LABS_API_KEY || null,
84
+ dashboardConnected: false,
85
+ elevenLabsAgentId: process.env.ELEVEN_LABS_AGENT_ID || 'agent_01jye1ajkaf17axpcxg220qwcm',
86
+ browserTaskMode: parseBrowserTaskMode(process.env.BROWSER_TASK_MODE),
87
+ };
88
+ }
89
+ };
@@ -0,0 +1,146 @@
1
+ import {
2
+ BaseCheckpointSaver,
3
+ CheckpointTuple,
4
+ Checkpoint,
5
+ CheckpointMetadata,
6
+ ChannelVersions,
7
+ PendingWrite,
8
+ CheckpointListOptions,
9
+ CheckpointPendingWrite,
10
+ } from '@langchain/langgraph-checkpoint';
11
+ import type { RunnableConfig } from '@langchain/core/runnables';
12
+ import * as mindedConnection from './mindedConnection';
13
+ import {
14
+ mindedConnectionSocketMessageType,
15
+ OnCheckpointGetTuple,
16
+ OnCheckpointGetTupleResponse,
17
+ OnCheckpointList,
18
+ OnCheckpointListResponse,
19
+ OnCheckpointPut,
20
+ OnCheckpointPutResponse,
21
+ OnCheckpointPutWrites,
22
+ } from './mindedConnectionTypes';
23
+ import { logger } from '../utils/logger';
24
+
25
+ export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
26
+ constructor() {
27
+ super();
28
+ }
29
+
30
+ async getTuple(config: RunnableConfig<Record<string, any>>): Promise<CheckpointTuple | undefined> {
31
+ const response = await mindedConnection.awaitEmit<OnCheckpointGetTuple, OnCheckpointGetTupleResponse>(
32
+ mindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
33
+ {
34
+ type: mindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
35
+ config,
36
+ },
37
+ );
38
+
39
+ if (!response.tuple) {
40
+ return undefined;
41
+ }
42
+
43
+ const tuple = response.tuple;
44
+
45
+ // Re-serialize and deserialize checkpoint to restore class information
46
+ const [checkpointType, serializedCheckpoint] = this.serde.dumpsTyped(tuple.checkpoint);
47
+ const checkpoint = (await this.serde.loadsTyped(checkpointType, serializedCheckpoint)) as Checkpoint;
48
+
49
+ // Re-serialize and deserialize metadata to restore class information
50
+ const metadata = tuple.metadata
51
+ ? (() => {
52
+ const [metadataType, serializedMetadata] = this.serde.dumpsTyped(tuple.metadata);
53
+ return this.serde.loadsTyped(metadataType, serializedMetadata) as CheckpointMetadata;
54
+ })()
55
+ : undefined;
56
+
57
+ // Re-serialize and deserialize pending writes to restore class information
58
+ const pendingWrites: CheckpointPendingWrite[] = tuple.pendingWrites
59
+ ? await Promise.all(
60
+ tuple.pendingWrites.map(async (write) => {
61
+ const [taskId, channel, value] = write;
62
+ const [valueType, serializedValue] = this.serde.dumpsTyped(value);
63
+ const deserializedValue = await this.serde.loadsTyped(valueType, serializedValue);
64
+ return [taskId, channel, deserializedValue] as CheckpointPendingWrite;
65
+ }),
66
+ )
67
+ : [];
68
+
69
+ return {
70
+ config: tuple.config,
71
+ checkpoint,
72
+ metadata: await metadata,
73
+ parentConfig: tuple.parentConfig,
74
+ pendingWrites,
75
+ };
76
+ }
77
+
78
+ async *list(config: RunnableConfig<Record<string, any>>, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple, any, any> {
79
+ const response = await mindedConnection.awaitEmit<OnCheckpointList, OnCheckpointListResponse>(
80
+ mindedConnectionSocketMessageType.CHECKPOINT_LIST,
81
+ {
82
+ type: mindedConnectionSocketMessageType.CHECKPOINT_LIST,
83
+ config,
84
+ options,
85
+ },
86
+ );
87
+
88
+ for (const tuple of response.checkpoints || []) {
89
+ // Re-serialize and deserialize checkpoint to restore class information
90
+ const [checkpointType, serializedCheckpoint] = this.serde.dumpsTyped(tuple.checkpoint);
91
+ const checkpoint = (await this.serde.loadsTyped(checkpointType, serializedCheckpoint)) as Checkpoint;
92
+
93
+ // Re-serialize and deserialize metadata to restore class information
94
+ const metadata = tuple.metadata
95
+ ? (() => {
96
+ const [metadataType, serializedMetadata] = this.serde.dumpsTyped(tuple.metadata);
97
+ return this.serde.loadsTyped(metadataType, serializedMetadata) as CheckpointMetadata;
98
+ })()
99
+ : undefined;
100
+
101
+ yield {
102
+ config: tuple.config,
103
+ checkpoint,
104
+ metadata: await metadata,
105
+ parentConfig: tuple.parentConfig,
106
+ };
107
+ }
108
+ }
109
+
110
+ async put(
111
+ config: RunnableConfig<Record<string, any>>,
112
+ checkpoint: Checkpoint<string, string>,
113
+ metadata: CheckpointMetadata,
114
+ newVersions: ChannelVersions,
115
+ ): Promise<RunnableConfig<Record<string, any>>> {
116
+ try {
117
+ const response = await mindedConnection.awaitEmit<OnCheckpointPut, OnCheckpointPutResponse>(
118
+ mindedConnectionSocketMessageType.CHECKPOINT_PUT,
119
+ {
120
+ type: mindedConnectionSocketMessageType.CHECKPOINT_PUT,
121
+ config,
122
+ checkpoint,
123
+ metadata,
124
+ newVersions,
125
+ },
126
+ );
127
+ return response.config;
128
+ } catch (err) {
129
+ logger.error({ message: 'Error putting checkpoint:', err });
130
+ return config;
131
+ }
132
+ }
133
+
134
+ async putWrites(config: RunnableConfig<Record<string, any>>, writes: PendingWrite[], taskId: string): Promise<void> {
135
+ try {
136
+ await mindedConnection.awaitEmit<OnCheckpointPutWrites, any>(mindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES, {
137
+ type: mindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES,
138
+ config,
139
+ writes,
140
+ taskId,
141
+ });
142
+ } catch (err) {
143
+ logger.error({ message: 'Error putting writes:', err });
144
+ }
145
+ }
146
+ }