@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.
- package/README.md +6 -0
- package/dist/agent.d.ts +256 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +896 -0
- package/dist/agent.js.map +1 -0
- package/dist/browserTask/README.md +419 -0
- package/dist/browserTask/browserAgent.py +632 -0
- package/dist/browserTask/captcha_isolated.png +0 -0
- package/dist/browserTask/executeBrowserTask.d.ts +14 -0
- package/dist/browserTask/executeBrowserTask.d.ts.map +1 -0
- package/dist/browserTask/executeBrowserTask.js +195 -0
- package/dist/browserTask/executeBrowserTask.js.map +1 -0
- package/dist/browserTask/executeBrowserTask.py +153 -0
- package/dist/browserTask/executeBrowserTask.ts +79 -0
- package/dist/browserTask/localBrowserTask.d.ts +49 -0
- package/dist/browserTask/localBrowserTask.d.ts.map +1 -0
- package/dist/browserTask/localBrowserTask.js +284 -0
- package/dist/browserTask/localBrowserTask.js.map +1 -0
- package/dist/browserTask/requirements.txt +8 -0
- package/dist/browserTask/setup.sh +144 -0
- package/dist/browserTask/types.d.ts +35 -0
- package/dist/browserTask/types.d.ts.map +1 -0
- package/dist/browserTask/types.js +10 -0
- package/dist/browserTask/types.js.map +1 -0
- package/dist/checkpointer/checkpointSaverFactory.d.ts +7 -0
- package/dist/checkpointer/checkpointSaverFactory.d.ts.map +1 -0
- package/dist/checkpointer/checkpointSaverFactory.js +53 -0
- package/dist/checkpointer/checkpointSaverFactory.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +209 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.d.ts +10 -0
- package/dist/cli/lambdaHandlerTemplate.d.ts.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.js +76 -0
- package/dist/cli/lambdaHandlerTemplate.js.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.ts +78 -0
- package/dist/cli/localOperatorSetup.d.ts +6 -0
- package/dist/cli/localOperatorSetup.d.ts.map +1 -0
- package/dist/cli/localOperatorSetup.js +310 -0
- package/dist/cli/localOperatorSetup.js.map +1 -0
- package/dist/debugging/index.d.ts +2 -0
- package/dist/debugging/index.d.ts.map +1 -0
- package/dist/debugging/index.js +6 -0
- package/dist/debugging/index.js.map +1 -0
- package/dist/debugging/llmCallbackHandler.d.ts +36 -0
- package/dist/debugging/llmCallbackHandler.d.ts.map +1 -0
- package/dist/debugging/llmCallbackHandler.js +101 -0
- package/dist/debugging/llmCallbackHandler.js.map +1 -0
- package/dist/edges/createDirectEdge.d.ts +4 -0
- package/dist/edges/createDirectEdge.d.ts.map +1 -0
- package/dist/edges/createDirectEdge.js +24 -0
- package/dist/edges/createDirectEdge.js.map +1 -0
- package/dist/edges/createLogicalRouter.d.ts +8 -0
- package/dist/edges/createLogicalRouter.d.ts.map +1 -0
- package/dist/edges/createLogicalRouter.js +194 -0
- package/dist/edges/createLogicalRouter.js.map +1 -0
- package/dist/edges/createPromptRouter.d.ts +12 -0
- package/dist/edges/createPromptRouter.d.ts.map +1 -0
- package/dist/edges/createPromptRouter.js +176 -0
- package/dist/edges/createPromptRouter.js.map +1 -0
- package/dist/edges/edgeFactory.d.ts +14 -0
- package/dist/edges/edgeFactory.d.ts.map +1 -0
- package/dist/edges/edgeFactory.js +125 -0
- package/dist/edges/edgeFactory.js.map +1 -0
- package/dist/events/AgentEvents.d.ts +56 -0
- package/dist/events/AgentEvents.d.ts.map +1 -0
- package/dist/events/AgentEvents.js +13 -0
- package/dist/events/AgentEvents.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +98 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/zendesk.d.ts +35 -0
- package/dist/interfaces/zendesk.d.ts.map +1 -0
- package/dist/interfaces/zendesk.js +219 -0
- package/dist/interfaces/zendesk.js.map +1 -0
- package/dist/internalTools/appActionRunnerTool.d.ts +5 -0
- package/dist/internalTools/appActionRunnerTool.d.ts.map +1 -0
- package/dist/internalTools/appActionRunnerTool.js +88 -0
- package/dist/internalTools/appActionRunnerTool.js.map +1 -0
- package/dist/internalTools/documentExtraction/documentExtraction.d.ts +129 -0
- package/dist/internalTools/documentExtraction/documentExtraction.d.ts.map +1 -0
- package/dist/internalTools/documentExtraction/documentExtraction.js +736 -0
- package/dist/internalTools/documentExtraction/documentExtraction.js.map +1 -0
- package/dist/internalTools/documentExtraction/types.d.ts +29 -0
- package/dist/internalTools/documentExtraction/types.d.ts.map +1 -0
- package/dist/internalTools/documentExtraction/types.js +35 -0
- package/dist/internalTools/documentExtraction/types.js.map +1 -0
- package/dist/internalTools/libraryActionRunnerTool.d.ts +4 -0
- package/dist/internalTools/libraryActionRunnerTool.d.ts.map +1 -0
- package/dist/internalTools/libraryActionRunnerTool.js +53 -0
- package/dist/internalTools/libraryActionRunnerTool.js.map +1 -0
- package/dist/internalTools/retell.d.ts +12 -0
- package/dist/internalTools/retell.d.ts.map +1 -0
- package/dist/internalTools/retell.js +54 -0
- package/dist/internalTools/retell.js.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
- package/dist/internalTools/timer.d.ts +99 -0
- package/dist/internalTools/timer.d.ts.map +1 -0
- package/dist/internalTools/timer.js +139 -0
- package/dist/internalTools/timer.js.map +1 -0
- package/dist/internalTools/voice/escalateVoiceCall.d.ts +2 -0
- package/dist/internalTools/voice/escalateVoiceCall.d.ts.map +1 -0
- package/dist/internalTools/voice/escalateVoiceCall.js +52 -0
- package/dist/internalTools/voice/escalateVoiceCall.js.map +1 -0
- package/dist/internalTools/voice/retell.d.ts +12 -0
- package/dist/internalTools/voice/retell.d.ts.map +1 -0
- package/dist/internalTools/voice/retell.js +54 -0
- package/dist/internalTools/voice/retell.js.map +1 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.js.map +1 -0
- package/dist/interrupts/BaseInterruptSessionManager.d.ts +49 -0
- package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/BaseInterruptSessionManager.js +34 -0
- package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
- package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/MemoryInterruptSessionManager.js +60 -0
- package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
- package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/MindedInterruptSessionManager.js +162 -0
- package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
- package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
- package/dist/interrupts/interruptSessionManagerFactory.js +56 -0
- package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
- package/dist/llm/createLlmInstance.d.ts +3 -0
- package/dist/llm/createLlmInstance.d.ts.map +1 -0
- package/dist/llm/createLlmInstance.js +31 -0
- package/dist/llm/createLlmInstance.js.map +1 -0
- package/dist/nodes/addAppToolNode.d.ts +13 -0
- package/dist/nodes/addAppToolNode.d.ts.map +1 -0
- package/dist/nodes/addAppToolNode.js +87 -0
- package/dist/nodes/addAppToolNode.js.map +1 -0
- package/dist/nodes/addBrowserTaskNode.d.ts +13 -0
- package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -0
- package/dist/nodes/addBrowserTaskNode.js +167 -0
- package/dist/nodes/addBrowserTaskNode.js.map +1 -0
- package/dist/nodes/addBrowserTaskRunNode.d.ts +13 -0
- package/dist/nodes/addBrowserTaskRunNode.d.ts.map +1 -0
- package/dist/nodes/addBrowserTaskRunNode.js +167 -0
- package/dist/nodes/addBrowserTaskRunNode.js.map +1 -0
- package/dist/nodes/addHumanInTheLoopNode.d.ts +9 -0
- package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -0
- package/dist/nodes/addHumanInTheLoopNode.js +22 -0
- package/dist/nodes/addHumanInTheLoopNode.js.map +1 -0
- package/dist/nodes/addJumpToNode.d.ts +7 -0
- package/dist/nodes/addJumpToNode.d.ts.map +1 -0
- package/dist/nodes/addJumpToNode.js +24 -0
- package/dist/nodes/addJumpToNode.js.map +1 -0
- package/dist/nodes/addJunctionNode.d.ts +7 -0
- package/dist/nodes/addJunctionNode.d.ts.map +1 -0
- package/dist/nodes/addJunctionNode.js +20 -0
- package/dist/nodes/addJunctionNode.js.map +1 -0
- package/dist/nodes/addPromptNode.d.ts +18 -0
- package/dist/nodes/addPromptNode.d.ts.map +1 -0
- package/dist/nodes/addPromptNode.js +253 -0
- package/dist/nodes/addPromptNode.js.map +1 -0
- package/dist/nodes/addRpaNode.d.ts +18 -0
- package/dist/nodes/addRpaNode.d.ts.map +1 -0
- package/dist/nodes/addRpaNode.js +180 -0
- package/dist/nodes/addRpaNode.js.map +1 -0
- package/dist/nodes/addToolNode.d.ts +13 -0
- package/dist/nodes/addToolNode.d.ts.map +1 -0
- package/dist/nodes/addToolNode.js +67 -0
- package/dist/nodes/addToolNode.js.map +1 -0
- package/dist/nodes/addToolRunNode.d.ts +17 -0
- package/dist/nodes/addToolRunNode.d.ts.map +1 -0
- package/dist/nodes/addToolRunNode.js +59 -0
- package/dist/nodes/addToolRunNode.js.map +1 -0
- package/dist/nodes/addTriggerNode.d.ts +7 -0
- package/dist/nodes/addTriggerNode.d.ts.map +1 -0
- package/dist/nodes/addTriggerNode.js +25 -0
- package/dist/nodes/addTriggerNode.js.map +1 -0
- package/dist/nodes/compilePrompt.d.ts +5 -0
- package/dist/nodes/compilePrompt.d.ts.map +1 -0
- package/dist/nodes/compilePrompt.js +76 -0
- package/dist/nodes/compilePrompt.js.map +1 -0
- package/dist/nodes/nodeFactory.d.ts +16 -0
- package/dist/nodes/nodeFactory.d.ts.map +1 -0
- package/dist/nodes/nodeFactory.js +45 -0
- package/dist/nodes/nodeFactory.js.map +1 -0
- package/dist/nodes/rpaStepsExecutor.d.ts +5 -0
- package/dist/nodes/rpaStepsExecutor.d.ts.map +1 -0
- package/dist/nodes/rpaStepsExecutor.js +156 -0
- package/dist/nodes/rpaStepsExecutor.js.map +1 -0
- package/dist/platform/config.d.ts +16 -0
- package/dist/platform/config.d.ts.map +1 -0
- package/dist/platform/config.js +80 -0
- package/dist/platform/config.js.map +1 -0
- package/dist/platform/mindedCheckpointSaver.d.ts +10 -0
- package/dist/platform/mindedCheckpointSaver.d.ts.map +1 -0
- package/dist/platform/mindedCheckpointSaver.js +137 -0
- package/dist/platform/mindedCheckpointSaver.js.map +1 -0
- package/dist/platform/mindedConnection.d.ts +15 -0
- package/dist/platform/mindedConnection.d.ts.map +1 -0
- package/dist/platform/mindedConnection.js +254 -0
- package/dist/platform/mindedConnection.js.map +1 -0
- package/dist/platform/mindedConnectionTypes.d.ts +404 -0
- package/dist/platform/mindedConnectionTypes.d.ts.map +1 -0
- package/dist/platform/mindedConnectionTypes.js +51 -0
- package/dist/platform/mindedConnectionTypes.js.map +1 -0
- package/dist/platform/models/mindedChatOpenAI.d.ts +20 -0
- package/dist/platform/models/mindedChatOpenAI.d.ts.map +1 -0
- package/dist/platform/models/mindedChatOpenAI.js +32 -0
- package/dist/platform/models/mindedChatOpenAI.js.map +1 -0
- package/dist/platform/models/parallelWrapper.d.ts +17 -0
- package/dist/platform/models/parallelWrapper.d.ts.map +1 -0
- package/dist/platform/models/parallelWrapper.js +105 -0
- package/dist/platform/models/parallelWrapper.js.map +1 -0
- package/dist/platform/piiGateway/gateway.d.ts +14 -0
- package/dist/platform/piiGateway/gateway.d.ts.map +1 -0
- package/dist/platform/piiGateway/gateway.js +117 -0
- package/dist/platform/piiGateway/gateway.js.map +1 -0
- package/dist/platform/piiGateway/index.d.ts +3 -0
- package/dist/platform/piiGateway/index.d.ts.map +1 -0
- package/dist/platform/piiGateway/index.js +7 -0
- package/dist/platform/piiGateway/index.js.map +1 -0
- package/dist/platform/piiGateway/types.d.ts +27 -0
- package/dist/platform/piiGateway/types.d.ts.map +1 -0
- package/dist/platform/piiGateway/types.js +3 -0
- package/dist/platform/piiGateway/types.js.map +1 -0
- package/dist/platform/toolExecutor.d.ts +29 -0
- package/dist/platform/toolExecutor.d.ts.map +1 -0
- package/dist/platform/toolExecutor.js +84 -0
- package/dist/platform/toolExecutor.js.map +1 -0
- package/dist/platform/utils/parseAttachments.d.ts +14 -0
- package/dist/platform/utils/parseAttachments.d.ts.map +1 -0
- package/dist/platform/utils/parseAttachments.js +53 -0
- package/dist/platform/utils/parseAttachments.js.map +1 -0
- package/dist/platform/utils/tools.d.ts +6 -0
- package/dist/platform/utils/tools.d.ts.map +1 -0
- package/dist/platform/utils/tools.js +57 -0
- package/dist/platform/utils/tools.js.map +1 -0
- package/dist/playbooks/playbooks.d.ts +15 -0
- package/dist/playbooks/playbooks.d.ts.map +1 -0
- package/dist/playbooks/playbooks.js +208 -0
- package/dist/playbooks/playbooks.js.map +1 -0
- package/dist/toolsLibrary/classifier.d.ts +74 -0
- package/dist/toolsLibrary/classifier.d.ts.map +1 -0
- package/dist/toolsLibrary/classifier.js +256 -0
- package/dist/toolsLibrary/classifier.js.map +1 -0
- package/dist/toolsLibrary/extraction.d.ts +83 -0
- package/dist/toolsLibrary/extraction.d.ts.map +1 -0
- package/dist/toolsLibrary/extraction.js +328 -0
- package/dist/toolsLibrary/extraction.js.map +1 -0
- package/dist/toolsLibrary/index.d.ts +9 -0
- package/dist/toolsLibrary/index.d.ts.map +1 -0
- package/dist/toolsLibrary/index.js +46 -0
- package/dist/toolsLibrary/index.js.map +1 -0
- package/dist/toolsLibrary/parseDocument.d.ts +30 -0
- package/dist/toolsLibrary/parseDocument.d.ts.map +1 -0
- package/dist/toolsLibrary/parseDocument.js +119 -0
- package/dist/toolsLibrary/parseDocument.js.map +1 -0
- package/dist/triggers/triggerTypeToDefaultMessage.d.ts +4 -0
- package/dist/triggers/triggerTypeToDefaultMessage.d.ts.map +1 -0
- package/dist/triggers/triggerTypeToDefaultMessage.js +10 -0
- package/dist/triggers/triggerTypeToDefaultMessage.js.map +1 -0
- package/dist/types/Agent.types.d.ts +60 -0
- package/dist/types/Agent.types.d.ts.map +1 -0
- package/dist/types/Agent.types.js +9 -0
- package/dist/types/Agent.types.js.map +1 -0
- package/dist/types/Flows.types.d.ts +232 -0
- package/dist/types/Flows.types.d.ts.map +1 -0
- package/dist/types/Flows.types.js +65 -0
- package/dist/types/Flows.types.js.map +1 -0
- package/dist/types/LLM.types.d.ts +7 -0
- package/dist/types/LLM.types.d.ts.map +1 -0
- package/dist/types/LLM.types.js +11 -0
- package/dist/types/LLM.types.js.map +1 -0
- package/dist/types/LangGraph.types.d.ts +45 -0
- package/dist/types/LangGraph.types.d.ts.map +1 -0
- package/dist/types/LangGraph.types.js +77 -0
- package/dist/types/LangGraph.types.js.map +1 -0
- package/dist/types/Platform.types.d.ts +7 -0
- package/dist/types/Platform.types.d.ts.map +1 -0
- package/dist/types/Platform.types.js +11 -0
- package/dist/types/Platform.types.js.map +1 -0
- package/dist/types/Tools.types.d.ts +26 -0
- package/dist/types/Tools.types.d.ts.map +1 -0
- package/dist/types/Tools.types.js +3 -0
- package/dist/types/Tools.types.js.map +1 -0
- package/dist/types/Voice.types.d.ts +5 -0
- package/dist/types/Voice.types.d.ts.map +1 -0
- package/dist/types/Voice.types.js +3 -0
- package/dist/types/Voice.types.js.map +1 -0
- package/dist/utils/agentUtils.d.ts +5 -0
- package/dist/utils/agentUtils.d.ts.map +1 -0
- package/dist/utils/agentUtils.js +97 -0
- package/dist/utils/agentUtils.js.map +1 -0
- package/dist/utils/extractStateMemoryResponse.d.ts +5 -0
- package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -0
- package/dist/utils/extractStateMemoryResponse.js +91 -0
- package/dist/utils/extractStateMemoryResponse.js.map +1 -0
- package/dist/utils/history.d.ts +4 -0
- package/dist/utils/history.d.ts.map +1 -0
- package/dist/utils/history.js +33 -0
- package/dist/utils/history.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +39 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/schemaUtils.d.ts +15 -0
- package/dist/utils/schemaUtils.d.ts.map +1 -0
- package/dist/utils/schemaUtils.js +56 -0
- package/dist/utils/schemaUtils.js.map +1 -0
- package/dist/utils/wait.d.ts +2 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +6 -0
- package/dist/utils/wait.js.map +1 -0
- package/dist/voice/elevenLabsUtils.d.ts +65 -0
- package/dist/voice/elevenLabsUtils.d.ts.map +1 -0
- package/dist/voice/elevenLabsUtils.js +4 -0
- package/dist/voice/elevenLabsUtils.js.map +1 -0
- package/dist/voice/voiceSession.d.ts +37 -0
- package/dist/voice/voiceSession.d.ts.map +1 -0
- package/dist/voice/voiceSession.js +306 -0
- package/dist/voice/voiceSession.js.map +1 -0
- package/docs/.gitbook/assets/ADLC.png +0 -0
- package/docs/.gitbook/assets/PII-masking.png +0 -0
- package/docs/.gitbook/assets/image.png +0 -0
- package/docs/.gitbook/assets/on-prem.svg +4 -0
- package/docs/README.md +54 -0
- package/docs/SUMMARY.md +56 -0
- package/docs/examples/order-refund-flow.md +566 -0
- package/docs/getting-started/environment-configuration.md +158 -0
- package/docs/getting-started/installation.md +44 -0
- package/docs/getting-started/project-configuration.md +206 -0
- package/docs/getting-started/quick-start.md +262 -0
- package/docs/integrations/zendesk.md +554 -0
- package/docs/low-code-editor/edges.md +396 -0
- package/docs/low-code-editor/flows.md +74 -0
- package/docs/low-code-editor/nodes.md +367 -0
- package/docs/low-code-editor/playbooks.md +280 -0
- package/docs/low-code-editor/tools.md +358 -0
- package/docs/low-code-editor/triggers.md +182 -0
- package/docs/platform/on-prem.md +182 -0
- package/docs/platform/operator.md +89 -0
- package/docs/platform/pii-masking.md +221 -0
- package/docs/platform/scenarios.md +43 -0
- package/docs/platform/secrets.md +99 -0
- package/docs/platform/sso.md +27 -0
- package/docs/resources/your-first-eval.md +108 -0
- package/docs/sdk/agent-api.md +540 -0
- package/docs/sdk/debugging.md +80 -0
- package/docs/sdk/events.md +595 -0
- package/docs/sdk/logging.md +72 -0
- package/docs/sdk/memory.md +271 -0
- package/docs/sdk/parallel-llm.md +242 -0
- package/docs/sdk/vectorstore-query.md +60 -0
- package/docs/tooling/classifier.md +217 -0
- package/docs/tooling/document-processing.md +389 -0
- package/docs/tooling/extraction.md +78 -0
- package/docs/tooling/timers.md +61 -0
- package/package.json +73 -0
- package/src/agent.ts +1019 -0
- package/src/browserTask/executeBrowserTask.py +153 -0
- package/src/browserTask/executeBrowserTask.ts +253 -0
- package/src/browserTask/localBrowserTask.ts +300 -0
- package/src/browserTask/profile/Default/Extension Rules/000003.log +0 -0
- package/src/browserTask/profile/Default/Extension Scripts/000003.log +0 -0
- package/src/browserTask/profile/Default/Extension State/000003.log +0 -0
- package/src/browserTask/profile/Default/GCM Store/000003.log +0 -0
- package/src/browserTask/profile/Default/Local Storage/leveldb/000004.log +0 -0
- package/src/browserTask/profile/Default/Session Storage/000003.log +0 -0
- package/src/browserTask/profile/Default/Site Characteristics Database/000003.log +0 -0
- package/src/browserTask/profile/Default/Sync Data/LevelDB/000003.log +0 -0
- package/src/browserTask/profile/Default/shared_proto_db/000003.log +0 -0
- package/src/browserTask/profile/Default/shared_proto_db/metadata/000003.log +0 -0
- package/src/browserTask/types.ts +37 -0
- package/src/checkpointer/checkpointSaverFactory.ts +18 -0
- package/src/cli/index.ts +188 -0
- package/src/cli/lambdaHandlerTemplate.ts +78 -0
- package/src/cli/localOperatorSetup.ts +308 -0
- package/src/debugging/index.ts +1 -0
- package/src/debugging/llmCallbackHandler.ts +125 -0
- package/src/edges/createDirectEdge.ts +22 -0
- package/src/edges/createLogicalRouter.ts +182 -0
- package/src/edges/createPromptRouter.ts +213 -0
- package/src/edges/edgeFactory.ts +167 -0
- package/src/events/AgentEvents.ts +58 -0
- package/src/events/index.ts +3 -0
- package/src/index.ts +105 -0
- package/src/interfaces/zendesk.ts +212 -0
- package/src/internalTools/appActionRunnerTool.ts +68 -0
- package/src/internalTools/documentExtraction/documentExtraction.ts +804 -0
- package/src/internalTools/documentExtraction/types.ts +59 -0
- package/src/internalTools/libraryActionRunnerTool.ts +62 -0
- package/src/internalTools/timer.ts +125 -0
- package/src/internalTools/voice/escalateVoiceCall.ts +15 -0
- package/src/internalTools/voice/retell.ts +28 -0
- package/src/internalTools/voice/sendPlaceholderMessage.ts +27 -0
- package/src/interrupts/BaseInterruptSessionManager.ts +80 -0
- package/src/interrupts/MemoryInterruptSessionManager.ts +63 -0
- package/src/interrupts/MindedInterruptSessionManager.ts +163 -0
- package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
- package/src/llm/createLlmInstance.ts +33 -0
- package/src/nodes/addAppToolNode.ts +111 -0
- package/src/nodes/addBrowserTaskNode.ts +191 -0
- package/src/nodes/addBrowserTaskRunNode.ts +190 -0
- package/src/nodes/addHumanInTheLoopNode.ts +26 -0
- package/src/nodes/addJumpToNode.ts +26 -0
- package/src/nodes/addJunctionNode.ts +21 -0
- package/src/nodes/addPromptNode.ts +305 -0
- package/src/nodes/addRpaNode.ts +217 -0
- package/src/nodes/addToolNode.ts +84 -0
- package/src/nodes/addToolRunNode.ts +80 -0
- package/src/nodes/addTriggerNode.ts +27 -0
- package/src/nodes/compilePrompt.ts +44 -0
- package/src/nodes/nodeFactory.ts +61 -0
- package/src/nodes/rpaStepsExecutor.ts +175 -0
- package/src/platform/config.ts +89 -0
- package/src/platform/mindedCheckpointSaver.ts +146 -0
- package/src/platform/mindedConnection.ts +250 -0
- package/src/platform/mindedConnectionTypes.ts +495 -0
- package/src/platform/models/mindedChatOpenAI.ts +49 -0
- package/src/platform/models/parallelWrapper.ts +141 -0
- package/src/platform/piiGateway/gateway.ts +103 -0
- package/src/platform/piiGateway/index.ts +5 -0
- package/src/platform/piiGateway/types.ts +29 -0
- package/src/platform/toolExecutor.ts +106 -0
- package/src/platform/utils/parseAttachments.ts +56 -0
- package/src/platform/utils/tools.ts +55 -0
- package/src/playbooks/playbooks.ts +200 -0
- package/src/toolsLibrary/classifier.ts +326 -0
- package/src/toolsLibrary/extraction.ts +393 -0
- package/src/toolsLibrary/index.ts +10 -0
- package/src/toolsLibrary/parseDocument.ts +129 -0
- package/src/triggers/triggerTypeToDefaultMessage.ts +9 -0
- package/src/types/Agent.types.ts +73 -0
- package/src/types/Flows.types.ts +262 -0
- package/src/types/LLM.types.ts +15 -0
- package/src/types/LangGraph.types.ts +86 -0
- package/src/types/Platform.types.ts +6 -0
- package/src/types/Tools.types.ts +28 -0
- package/src/types/Voice.types.ts +4 -0
- package/src/utils/agentUtils.ts +69 -0
- package/src/utils/history.ts +38 -0
- package/src/utils/logger.ts +38 -0
- package/src/utils/schemaUtils.ts +68 -0
- package/src/utils/wait.ts +1 -0
- package/src/voice/elevenLabsUtils.ts +81 -0
- 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
|
+
}
|