@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,103 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
import * as mindedConnection from '../mindedConnection';
|
|
3
|
+
import { mindedConnectionSocketMessageType, OnPiiHttpRequest, OnPiiHttpResponse } from '../mindedConnectionTypes';
|
|
4
|
+
import { HttpRequestConfig, HttpResponse, PIIGatewayInstance } from './types';
|
|
5
|
+
import { logger } from '../../utils/logger';
|
|
6
|
+
|
|
7
|
+
export class PIIGateway implements PIIGatewayInstance {
|
|
8
|
+
constructor() {
|
|
9
|
+
// No longer needs mindedConnection as parameter
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
private async makeRequest<T = any>(
|
|
13
|
+
sessionId: string,
|
|
14
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS',
|
|
15
|
+
url: string,
|
|
16
|
+
data?: any,
|
|
17
|
+
config?: HttpRequestConfig,
|
|
18
|
+
): Promise<HttpResponse<T>> {
|
|
19
|
+
if (!mindedConnection.isConnected()) {
|
|
20
|
+
throw new Error('Minded connection is not established. PII-secured HTTP requests require a connection to the Minded platform.');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const requestId = uuidv4();
|
|
25
|
+
const requestPayload: OnPiiHttpRequest = {
|
|
26
|
+
type: mindedConnectionSocketMessageType.PII_HTTP_REQUEST,
|
|
27
|
+
requestId,
|
|
28
|
+
method,
|
|
29
|
+
url,
|
|
30
|
+
headers: config?.headers as Record<string, string>,
|
|
31
|
+
params: config?.params,
|
|
32
|
+
data,
|
|
33
|
+
sessionId,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const response = await mindedConnection.awaitEmit<OnPiiHttpRequest, OnPiiHttpResponse>(
|
|
37
|
+
mindedConnectionSocketMessageType.PII_HTTP_REQUEST,
|
|
38
|
+
requestPayload,
|
|
39
|
+
30000, // 30 second timeout for HTTP requests
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
if (response.error) {
|
|
43
|
+
throw new Error(`HTTP request failed: ${response.error}`);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Verify that the response requestId matches our request
|
|
47
|
+
if (response.requestId && response.requestId !== requestId) {
|
|
48
|
+
logger.warn(`Response requestId (${response.requestId}) does not match request requestId (${requestId})`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Return generic HttpResponse format
|
|
52
|
+
return {
|
|
53
|
+
data: response.data,
|
|
54
|
+
status: response.status || 200,
|
|
55
|
+
statusText: response.statusText || 'OK',
|
|
56
|
+
headers: response.headers || {},
|
|
57
|
+
config: config || {},
|
|
58
|
+
};
|
|
59
|
+
} catch (err) {
|
|
60
|
+
logger.error({ message: 'Secure HTTP request failed', err });
|
|
61
|
+
return {
|
|
62
|
+
data: undefined as T,
|
|
63
|
+
status: 500,
|
|
64
|
+
statusText: 'Internal Server Error',
|
|
65
|
+
headers: {},
|
|
66
|
+
config: config || {},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async get<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
72
|
+
return this.makeRequest<T>(sessionId, 'GET', url, undefined, config);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async post<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
76
|
+
return this.makeRequest<T>(sessionId, 'POST', url, data, config);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async put<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
80
|
+
return this.makeRequest<T>(sessionId, 'PUT', url, data, config);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async delete<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
84
|
+
return this.makeRequest<T>(sessionId, 'DELETE', url, undefined, config);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async patch<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
88
|
+
return this.makeRequest<T>(sessionId, 'PATCH', url, data, config);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async head<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
92
|
+
return this.makeRequest<T>(sessionId, 'HEAD', url, undefined, config);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async options<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
96
|
+
return this.makeRequest<T>(sessionId, 'OPTIONS', url, undefined, config);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async request<T = any>(sessionId: string, config: HttpRequestConfig): Promise<HttpResponse<T>> {
|
|
100
|
+
const method = (config.method?.toUpperCase() || 'GET') as any;
|
|
101
|
+
return this.makeRequest<T>(sessionId, method, config.url || '', config.data, config);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generic HTTP types (library-agnostic)
|
|
2
|
+
export interface HttpRequestConfig {
|
|
3
|
+
method?: string;
|
|
4
|
+
url?: string;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
params?: Record<string, any>;
|
|
7
|
+
data?: any;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
[key: string]: any; // Allow additional properties for extensibility
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface HttpResponse<T = any> {
|
|
13
|
+
data: T;
|
|
14
|
+
status: number;
|
|
15
|
+
statusText: string;
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
config: HttpRequestConfig;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface PIIGatewayInstance {
|
|
21
|
+
get<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
22
|
+
post<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
23
|
+
put<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
24
|
+
delete<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
25
|
+
patch<T = any>(sessionId: string, url: string, data?: any, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
26
|
+
head<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
27
|
+
options<T = any>(sessionId: string, url: string, config?: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
28
|
+
request<T = any>(sessionId: string, config: HttpRequestConfig): Promise<HttpResponse<T>>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Tool } from '../types/Tools.types';
|
|
2
|
+
import { Agent } from '../agent';
|
|
3
|
+
import { logger } from '../utils/logger';
|
|
4
|
+
|
|
5
|
+
export interface ToolExecutionRequest {
|
|
6
|
+
toolName: string;
|
|
7
|
+
toolParams: any;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
requestId: string;
|
|
10
|
+
cdpUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface ToolExecutionResponse {
|
|
14
|
+
result?: any;
|
|
15
|
+
state?: any;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class ToolExecutor {
|
|
20
|
+
private tools: Map<string, Tool<any, any>> = new Map();
|
|
21
|
+
|
|
22
|
+
constructor(private agent: Agent) {}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Register tools for standalone execution
|
|
26
|
+
*/
|
|
27
|
+
registerTools(tools: Tool<any, any>[]) {
|
|
28
|
+
tools.forEach((tool) => {
|
|
29
|
+
if (tool.allowExecutionRequests === true) {
|
|
30
|
+
this.tools.set(tool.name, tool);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Execute a tool by name with given parameters
|
|
37
|
+
* This is called when browser-use requests tool execution via socket
|
|
38
|
+
*/
|
|
39
|
+
async executeTool(request: ToolExecutionRequest): Promise<ToolExecutionResponse> {
|
|
40
|
+
const { toolName, toolParams, sessionId, cdpUrl } = request;
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
// Find the tool
|
|
44
|
+
const tool = this.tools.get(toolName);
|
|
45
|
+
if (!tool) {
|
|
46
|
+
throw new Error(`Tool not found: ${toolName}`);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// We only allow to execute tools that are marked as allowed to be executed
|
|
50
|
+
|
|
51
|
+
logger.debug({
|
|
52
|
+
msg: '[ToolExecutor] Executing tool',
|
|
53
|
+
toolName,
|
|
54
|
+
sessionId,
|
|
55
|
+
hasCdpUrl: !!cdpUrl,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// Get the current state for the session
|
|
59
|
+
const state = await this.agent.getState(sessionId);
|
|
60
|
+
if (!state) {
|
|
61
|
+
throw new Error(`Session state not found: ${sessionId}`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Execute the tool
|
|
65
|
+
const startTime = Date.now();
|
|
66
|
+
|
|
67
|
+
if (cdpUrl) {
|
|
68
|
+
state.cdp = {
|
|
69
|
+
url: cdpUrl,
|
|
70
|
+
sessionId: state.cdp?.sessionId || null,
|
|
71
|
+
liveUrl: state.cdp?.liveUrl || null,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
await tool.execute({
|
|
76
|
+
input: toolParams,
|
|
77
|
+
state,
|
|
78
|
+
agent: this.agent,
|
|
79
|
+
});
|
|
80
|
+
const endTime = Date.now();
|
|
81
|
+
|
|
82
|
+
logger.debug({
|
|
83
|
+
msg: '[ToolExecutor] Tool execution completed',
|
|
84
|
+
toolName,
|
|
85
|
+
executionTimeMs: endTime - startTime,
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Always update the session state after tool execution req
|
|
89
|
+
await this.agent.updateState({ sessionId, state });
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
state,
|
|
93
|
+
};
|
|
94
|
+
} catch (err) {
|
|
95
|
+
logger.error({
|
|
96
|
+
message: '[ToolExecutor] Error executing tool',
|
|
97
|
+
toolName,
|
|
98
|
+
err,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
error: err instanceof Error ? err.message : String(err),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses attachments from a trigger body and formats them as a string
|
|
3
|
+
* @param triggerBody - The trigger body containing potential attachments
|
|
4
|
+
* @returns Formatted string of attachments or empty string if no attachments
|
|
5
|
+
*/
|
|
6
|
+
export const parseAttachments = (triggerBody: any): string => {
|
|
7
|
+
// Check if triggerBody has attachments
|
|
8
|
+
const attachments = triggerBody?.attachments;
|
|
9
|
+
|
|
10
|
+
if (!attachments || !Array.isArray(attachments) || attachments.length === 0) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Format attachments
|
|
15
|
+
const attachmentStrings = attachments
|
|
16
|
+
.map((attachment: any) => {
|
|
17
|
+
const lines: string[] = [];
|
|
18
|
+
|
|
19
|
+
if (attachment.originalname) {
|
|
20
|
+
lines.push(`originalName: ${attachment.originalname}`);
|
|
21
|
+
} else if (attachment.name) {
|
|
22
|
+
lines.push(`originalName: ${attachment.name}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (attachment.path) {
|
|
26
|
+
lines.push(`localPath: ${attachment.path}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return lines.join('\n');
|
|
30
|
+
})
|
|
31
|
+
.filter((str) => str.length > 0);
|
|
32
|
+
|
|
33
|
+
if (attachmentStrings.length === 0) {
|
|
34
|
+
return '';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return 'Attachments:\n' + attachmentStrings.join('\n\n');
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Combines content with attachments string
|
|
42
|
+
* @param content - The main content string
|
|
43
|
+
* @param attachmentsString - The formatted attachments string
|
|
44
|
+
* @returns Combined content with attachments
|
|
45
|
+
*/
|
|
46
|
+
export const combineContentWithAttachments = (content: string, attachmentsString: string): string => {
|
|
47
|
+
if (!attachmentsString) {
|
|
48
|
+
return content;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (!content) {
|
|
52
|
+
return attachmentsString;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return `${content}\n${attachmentsString}`;
|
|
56
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { logger } from '../../utils/logger';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Convert Zod schema to parameter format
|
|
5
|
+
* This is a simplified version - you might need to expand based on your needs
|
|
6
|
+
*/
|
|
7
|
+
export const zodSchemaToParams = (zodSchema: any): any[] => {
|
|
8
|
+
try {
|
|
9
|
+
// Get the shape of the Zod object
|
|
10
|
+
const shape = zodSchema._def?.shape?.() || {};
|
|
11
|
+
const params = [];
|
|
12
|
+
|
|
13
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
14
|
+
const zodValue = value as any; // Zod schema type
|
|
15
|
+
const param: any = {
|
|
16
|
+
name: key,
|
|
17
|
+
type: getZodType(zodValue),
|
|
18
|
+
required: !zodValue.isOptional?.(),
|
|
19
|
+
description: zodValue._def?.description || '',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
params.push(param);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return params;
|
|
26
|
+
} catch (err) {
|
|
27
|
+
logger.warn({
|
|
28
|
+
message: '[ToolExecutor] Error parsing Zod schema',
|
|
29
|
+
err,
|
|
30
|
+
});
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Get type string from Zod type
|
|
37
|
+
*/
|
|
38
|
+
const getZodType = (zodType: any): string => {
|
|
39
|
+
const typeName = zodType._def?.typeName;
|
|
40
|
+
|
|
41
|
+
switch (typeName) {
|
|
42
|
+
case 'ZodString':
|
|
43
|
+
return 'string';
|
|
44
|
+
case 'ZodNumber':
|
|
45
|
+
return 'number';
|
|
46
|
+
case 'ZodBoolean':
|
|
47
|
+
return 'boolean';
|
|
48
|
+
case 'ZodArray':
|
|
49
|
+
return 'array';
|
|
50
|
+
case 'ZodObject':
|
|
51
|
+
return 'object';
|
|
52
|
+
default:
|
|
53
|
+
return 'any';
|
|
54
|
+
}
|
|
55
|
+
};
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as yaml from 'js-yaml';
|
|
4
|
+
import * as mindedConnection from '../platform/mindedConnection';
|
|
5
|
+
import { mindedConnectionSocketMessageType } from '../platform/mindedConnectionTypes';
|
|
6
|
+
import { getConfig } from '../platform/config';
|
|
7
|
+
import { logger } from '../utils/logger';
|
|
8
|
+
import { OutputBlockData } from '@editorjs/editorjs';
|
|
9
|
+
import { Environment } from '../types/Platform.types';
|
|
10
|
+
|
|
11
|
+
export type Playbook = {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
blocks: OutputBlockData[];
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Decode HTML entities in a string
|
|
19
|
+
*/
|
|
20
|
+
function decodeHtmlEntities(text: string): string {
|
|
21
|
+
const entities: Record<string, string> = {
|
|
22
|
+
'&': '&',
|
|
23
|
+
'<': '<',
|
|
24
|
+
'>': '>',
|
|
25
|
+
'"': '"',
|
|
26
|
+
''': "'",
|
|
27
|
+
''': "'",
|
|
28
|
+
''': "'",
|
|
29
|
+
'/': '/',
|
|
30
|
+
'`': '`',
|
|
31
|
+
'=': '=',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return text.replace(/&[#\w]+;/g, (entity) => entities[entity] || entity);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Convert EditorJS blocks to markdown
|
|
39
|
+
*/
|
|
40
|
+
function editorJsToMarkdown(blocks: OutputBlockData[]): string {
|
|
41
|
+
if (!blocks || blocks.length === 0) {
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return blocks
|
|
46
|
+
.map((block) => {
|
|
47
|
+
try {
|
|
48
|
+
switch (block.type) {
|
|
49
|
+
case 'header': {
|
|
50
|
+
const level = block.data?.level || 1;
|
|
51
|
+
const headerPrefix = '#'.repeat(level);
|
|
52
|
+
const text = block.data?.text || '';
|
|
53
|
+
return `${headerPrefix} ${decodeHtmlEntities(text)}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
case 'paragraph': {
|
|
57
|
+
const text = block.data?.text || '';
|
|
58
|
+
return decodeHtmlEntities(text);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
case 'list': {
|
|
62
|
+
const items = block.data?.items || [];
|
|
63
|
+
const style = block.data?.style || 'unordered';
|
|
64
|
+
return items
|
|
65
|
+
.map((item: { content: string }, index: number) => {
|
|
66
|
+
const decodedItem = decodeHtmlEntities(item.content);
|
|
67
|
+
if (style === 'ordered') {
|
|
68
|
+
return `${index + 1}. ${decodedItem}`;
|
|
69
|
+
} else {
|
|
70
|
+
return `- ${decodedItem}`;
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
.join('\n');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
case 'quote': {
|
|
77
|
+
const text = block.data?.text || '';
|
|
78
|
+
const caption = block.data?.caption ? `\n*${decodeHtmlEntities(block.data.caption)}*` : '';
|
|
79
|
+
return `> ${decodeHtmlEntities(text)}${caption}`;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
case 'code': {
|
|
83
|
+
const code = block.data?.code || '';
|
|
84
|
+
return `\`\`\`\n${decodeHtmlEntities(code)}\n\`\`\``;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
case 'delimiter': {
|
|
88
|
+
return '---';
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
default: {
|
|
92
|
+
logger.warn(`Unknown playbook block type: ${block.type}`);
|
|
93
|
+
return '';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
} catch (err) {
|
|
97
|
+
logger.error({ message: 'Error converting EditorJS blocks to markdown', err, block });
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
.join('\n\n');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Load playbooks from directories or platform
|
|
106
|
+
*/
|
|
107
|
+
export async function loadPlaybooks(playbooksDirectories?: string[]): Promise<Playbook[]> {
|
|
108
|
+
const { env, isDeployed } = getConfig();
|
|
109
|
+
let playbooks: Playbook[] = [];
|
|
110
|
+
|
|
111
|
+
if ([Environment.DEVELOPMENT].includes(env) && isDeployed && mindedConnection.isConnected()) {
|
|
112
|
+
// Load from platform
|
|
113
|
+
const response = await mindedConnection.awaitEmit<object, { playbooks?: Playbook[]; error?: string }>(
|
|
114
|
+
mindedConnectionSocketMessageType.GET_PLAYBOOKS,
|
|
115
|
+
{},
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
if (response?.error) {
|
|
119
|
+
throw new Error(`Failed to load playbooks from platform: ${response.error}`);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
playbooks = response?.playbooks || [];
|
|
123
|
+
} else if (playbooksDirectories) {
|
|
124
|
+
// Load from directories
|
|
125
|
+
playbooks = loadPlaybooksFromDirectories(playbooksDirectories);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return playbooks;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Load playbooks from local directories
|
|
133
|
+
*/
|
|
134
|
+
function loadPlaybooksFromDirectories(directories: string[]): Playbook[] {
|
|
135
|
+
const playbooks: Playbook[] = [];
|
|
136
|
+
|
|
137
|
+
for (const directory of directories) {
|
|
138
|
+
if (!fs.existsSync(directory)) {
|
|
139
|
+
logger.info({ msg: `Playbooks directory does not exist: ${directory}` });
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const files = getAllYamlFiles(directory);
|
|
144
|
+
|
|
145
|
+
for (const file of files) {
|
|
146
|
+
try {
|
|
147
|
+
const fileContent = fs.readFileSync(file, 'utf8');
|
|
148
|
+
const playbook = yaml.load(fileContent) as Playbook;
|
|
149
|
+
|
|
150
|
+
if (playbook && playbook.name && playbook.blocks) {
|
|
151
|
+
playbooks.push(playbook);
|
|
152
|
+
logger.info({ msg: `Loaded playbook: ${playbook.name} from ${file}` });
|
|
153
|
+
} else {
|
|
154
|
+
logger.warn({ msg: `Invalid playbook structure in ${file}` });
|
|
155
|
+
}
|
|
156
|
+
} catch (err) {
|
|
157
|
+
logger.error({ message: `Failed to load playbook file ${file}: ${err}` });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return playbooks;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Recursively get all YAML files in a directory
|
|
167
|
+
*/
|
|
168
|
+
function getAllYamlFiles(dir: string): string[] {
|
|
169
|
+
const files: string[] = [];
|
|
170
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
171
|
+
|
|
172
|
+
for (const entry of entries) {
|
|
173
|
+
const fullPath = path.join(dir, entry.name);
|
|
174
|
+
if (entry.isDirectory()) {
|
|
175
|
+
files.push(...getAllYamlFiles(fullPath));
|
|
176
|
+
} else if (entry.name.endsWith('.yaml') || entry.name.endsWith('.yml')) {
|
|
177
|
+
files.push(fullPath);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return files;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Combine playbooks into a single string
|
|
186
|
+
*/
|
|
187
|
+
export function combinePlaybooks(playbooks: Playbook[]): string | null {
|
|
188
|
+
if (playbooks.length === 0) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Combine all playbooks into sections
|
|
193
|
+
const sections = playbooks.map((playbook) => {
|
|
194
|
+
const markdownContent = editorJsToMarkdown(playbook.blocks);
|
|
195
|
+
return `# ${playbook.name}\n${markdownContent}`;
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
const combinedPlaybooks = sections.join('\n\n');
|
|
199
|
+
return combinedPlaybooks;
|
|
200
|
+
}
|